runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);\r
//trigger AP10 报警定位\r
// CoreService.this.locationClient.triggerSOSLocationProcess();\r
- connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(runtime)));\r
+ connection.send(protocolAPIHelper.getWarningMSG(runtime));\r
\r
//开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟\r
runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
||(lbs_ok&&gps_nosignal&&wifi_ok)\r
){\r
if (startSOSLocation==true){\r
- String AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);\r
+ StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);\r
Deliver.sendLocationMSG(AP10_CMD);\r
startSOSLocation=false;\r
}else {\r
\r
\r
if (startSOSLocation==true){\r
- String AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);\r
+ StringMessage AP10_CMD = protocolAPIHelper.getWarningMSG(runtime);\r
Deliver.sendLocationMSG(AP10_CMD);\r
startSOSLocation=false;\r
\r
if (runtime.getBatteryLow()) {\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警低电\r
- connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(runtime)));\r
+ connection.send(protocolAPIHelper.getWarningMSG(runtime));\r
}\r
\r
this.batteryLowNotification = true;\r
import com.enqualcomm.support.CoreService;\r
import com.enqualcomm.support.R;\r
import com.enqualcomm.support.bean.Runtime;\r
+import com.enqualcomm.support.bean.StringMessage;\r
import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;\r
import com.enqualcomm.support.utils.Connection;\r
import com.enqualcomm.support.utils.ICLogger;\r
}\r
mRuntime.Anti_off_flag=0;\r
mRuntime.setAlarmType(Runtime.AlarmType.ALARM_WEARED);\r
- String msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
+ StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
\r
// try {\r
}\r
mRuntime.Anti_off_flag=1;\r
mRuntime.setAlarmType(Runtime.AlarmType.ALARM_ANTIOFF);\r
- String msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
+ StringMessage msg=protocolAPIHelper.getWarningMSG(mRuntime);\r
Deliver.sendLocationMSG(msg); //消息很重要,所以利用带buffer的对列来发送!\r
// try {\r
// sleep(1000);\r
import com.enqualcomm.support.Config;\r
import com.enqualcomm.support.Constants;\r
import com.enqualcomm.support.CoreService;\r
+import com.enqualcomm.support.bean.StringMessage;\r
import com.enqualcomm.support.utils.Util;\r
import com.ic.jni.ICJniUtils;\r
import com.ic.protocols.protocolAPIHelper;\r
\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
\r
}else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()<runtime.getHRS().ppg_threshold_min) {\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
}\r
\r
//bph\r
\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
\r
}else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
\r
}\r
\r
\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
\r
}else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
\r
}\r
}\r
//只有检测PPG成功,且网络连接中才发送数据\r
if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());\r
- String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
+ StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
sendBroadcastPPGResult();\r
//因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
if (connection.isServerConnected()) {\r
- if(PPGDATA.isEmpty()){\r
- String ppgd=protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
- String bloodd=protocolAPIHelper.getBlood_MSG( runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
- String oxd=protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
- connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
- connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
- connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+ if(PPGDATA==null){\r
+ StringMessage ppgd=protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
+ StringMessage bloodd=protocolAPIHelper.getBlood_MSG( runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
+ StringMessage oxd=protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
+ connection.send( ppgd);\r
+ connection.send(bloodd);\r
+ connection.send( oxd);\r
\r
checkWarning();\r
\r
}else {\r
- connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
- ICLogger.i("Send PPG " + PPGDATA);\r
+ connection.send( PPGDATA);\r
+ ICLogger.i("Send PPG " + PPGDATA.isFromCache());\r
checkWarning();\r
}\r
- ICLogger.i("Send PPG " + PPGDATA);\r
+ ICLogger.i("Send PPG " + PPGDATA.isFromCache());\r
} else {\r
- ICLogger.i("Skip PPG " + PPGDATA);\r
+ ICLogger.i("Skip PPG " + PPGDATA.isFromCache());\r
}\r
} else {\r
ICLogger.i("PPG Failed for Timeout!");\r
\r
\r
if (connection.isServerConnected()) {\r
- String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
- if(PPGDATA.isEmpty()){\r
- String ppgd=protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
- String bloodd=protocolAPIHelper.getBlood_MSG( Integer.parseInt(bph), Integer.parseInt(bpl));\r
- String oxd=protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
- connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
- connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
- connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+ StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
+ if(PPGDATA==null){\r
+ StringMessage ppgd=protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
+ StringMessage bloodd=protocolAPIHelper.getBlood_MSG( Integer.parseInt(bph), Integer.parseInt(bpl));\r
+ StringMessage oxd=protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
+ connection.send( ppgd);\r
+ connection.send(bloodd);\r
+ connection.send( oxd);\r
\r
}else {\r
- connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
- ICLogger.i("Send PPG " + PPGDATA);\r
+ connection.send( PPGDATA);\r
+ ICLogger.i("Send PPG " + PPGDATA.isFromCache());\r
}\r
} else {\r
ICLogger.i("Skip PPG ");\r
\r
if (KeepAlive.this.mRuntime.getBatteryLow()){\r
KeepAlive.this.mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
- KeepAlive.this.connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(KeepAlive.this.mRuntime)));\r
+ KeepAlive.this.connection.send(protocolAPIHelper.getWarningMSG(KeepAlive.this.mRuntime));\r
\r
ICLogger.i("Shutdown Received! send AP10 !");\r
}\r
play_waning_notify(param1Context);\r
mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警定位\r
- connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
+ connection.send(protocolAPIHelper.getWarningMSG(mRuntime));\r
}\r
} else {\r
mRuntime.setBattery(String.format("%03d",batLevel));\r
play_waning_notify(param1Context);\r
mRuntime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);\r
//trigger AP10 报警定位\r
- connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(mRuntime)));\r
+ connection.send( protocolAPIHelper.getWarningMSG(mRuntime));\r
\r
\r
}\r
\r
public void send(StringMessage paramStringMessage) {\r
\r
+ if(paramStringMessage==null) {\r
+ ICLogger.i(" StringMessage is null skip send!");\r
+ return ;\r
+ }\r
sendMsg(paramStringMessage.isFromCache());\r
ICLogger.logToFile("APILog",paramStringMessage.isFromCache());\r
ICLogger.i(paramStringMessage.isFromCache());\r
import com.enqualcomm.support.R;\r
import com.enqualcomm.support.bean.NotificationParam;\r
import com.enqualcomm.support.bean.Runtime;\r
+import com.enqualcomm.support.bean.StringMessage;\r
import com.enqualcomm.support.bean.VoiceContent;\r
import com.enqualcomm.support.service.Deliver;\r
import com.ic.jni.ICJniUtils;\r
}else if (ACTION_TEMP_RESULT.equals(str)) {\r
double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
- String temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
- ICLogger.i("发送体温测量值 " + temperatureMsg);\r
+ StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
+ ICLogger.i("发送体温测量值 " + temperatureMsg.isFromCache());\r
Deliver.sendLocationMSG(temperatureMsg);\r
}else if (ACTION_SET_SIT_RANGE.equals(str)) {\r
if (paramIntent.hasExtra( Constants.KEY_SIT_RANGE)){\r
import com.enqualcomm.support.Constants;\r
import com.enqualcomm.support.CoreService;\r
import com.enqualcomm.support.bean.Runtime;\r
+import com.enqualcomm.support.bean.StringMessage;\r
import com.ic.jni.ICJniUtils;\r
import com.ic.protocols.protocolAPIHelper;\r
import com.sina.util.dnscache.log.FileUtil;\r
body_temp=TemperatureUtil.getBodyTemp(wrist_temp,26.0f);\r
ICJniUtils.disableTemperature();\r
\r
- String temperatureMsg= protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("APTP",temperatureMsg));\r
- ICLogger.i("发送体温测量值 "+temperatureMsg);\r
+ StringMessage temperatureMsg= protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
+ CoreService.getInstance().getConnection().send(temperatureMsg);\r
+ ICLogger.i("发送体温测量值 "+temperatureMsg.isFromCache());\r
\r
Runtime runtime=CoreService.getInstance().getRuntime();\r
runtime.tempInfo.setTemp(body_temp,wrist_temp);\r
case 1:\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
break;\r
case 2:\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
break;\r
}\r
}\r
\r
wrist_temp=TemperatureUtil.get_temp_value_adjusted();\r
body_temp=TemperatureUtil.getBodyTemp(wrist_temp,26.0f);\r
- String temperatureMsg= protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("APTP",temperatureMsg));\r
- ICLogger.i("发送体温测量值 "+temperatureMsg);\r
+ StringMessage temperatureMsg= protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
+ CoreService.getInstance().getConnection().send(temperatureMsg);\r
+ ICLogger.i("发送体温测量值 "+temperatureMsg.isFromCache());\r
\r
Runtime runtime=CoreService.getInstance().getRuntime();\r
runtime.tempInfo.setTemp(body_temp,wrist_temp);\r
case 1:\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_HIGH);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
break;\r
case 2:\r
runtime.setAlarmType(Runtime.AlarmType.ALARM_TEMP_LOW);\r
//trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ CoreService.getInstance().getConnection().send( protocolAPIHelper.getWarningMSG(runtime));\r
break;\r
}\r
}\r
ret=null;\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret=genStringMessage("PING",protocol_fzd.PING());\r
+ ret=protocol_fzd.PING();\r
break;\r
case Config.PROTOCOL_MQTT:\r
ret=null;\r
return ret;\r
}\r
\r
- public static String getTemperatureMSG(double temp_adusted,double body_temp){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getTemperatureMSG(double temp_adusted,double body_temp){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
ret=protocol_beehome.APTP(temp_adusted,body_temp);\r
ret=protocol_fzd.temp(body_temp);\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
}\r
- public static String getWarningMSG(Runtime runtime){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getWarningMSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
ret=protocol_ic.AP10(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret=genStringMessage("AP00",protocol_jiai.AP00(runtime));\r
+ ret=protocol_jiai.AP00(runtime);\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret=genStringMessage("AP00",protocol_beehome.AP00(runtime));\r
+ ret=protocol_beehome.AP00(runtime);\r
break;\r
case Config.PROTOCOL_IC:\r
- ret=genStringMessage("AP00",protocol_ic.AP00(runtime));\r
+ ret=protocol_ic.AP00(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret=genStringMessage("AP00",protocol_fzd.LK());\r
+ ret=protocol_fzd.LK();\r
break;\r
case Config.PROTOCOL_MQTT:\r
ret=protocol_mqtt.BREQ(runtime);\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret=genStringMessage("AP03",protocol_jiai.AP03(runtime));\r
+ ret=protocol_jiai.AP03(runtime);\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret=genStringMessage("AP03",protocol_beehome.AP03(runtime));\r
+ ret=protocol_beehome.AP03(runtime);\r
break;\r
case Config.PROTOCOL_IC:\r
- ret=genStringMessage("AP03",protocol_ic.AP03(runtime));\r
+ ret=protocol_ic.AP03(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret=genStringMessage("KA",protocol_fzd.KA(runtime));\r
+ ret=protocol_fzd.KA(runtime);\r
break;\r
case Config.PROTOCOL_MQTT:\r
ret=protocol_mqtt.KA(runtime);\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret=genStringMessage("AP01",protocol_jiai.AP01(runtime));\r
+ ret=protocol_jiai.AP01(runtime);\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret=genStringMessage("AP01",protocol_beehome.AP01(runtime));\r
+ ret=protocol_beehome.AP01(runtime);\r
break;\r
case Config.PROTOCOL_IC:\r
- ret=genStringMessage("AP01",protocol_ic.AP01(runtime));\r
+ ret=protocol_ic.AP01(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret=genStringMessage("UD",protocol_fzd.UD(runtime));\r
+ ret=protocol_fzd.UD(runtime);\r
break;\r
case Config.PROTOCOL_MQTT:\r
ret=protocol_mqtt.UD(runtime);\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret=genStringMessage("AP02",protocol_jiai.AP02(runtime));\r
+ ret=protocol_jiai.AP02(runtime);\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret=genStringMessage("AP02",protocol_beehome.AP02(runtime));\r
+ ret=protocol_beehome.AP02(runtime);\r
break;\r
case Config.PROTOCOL_IC:\r
- ret=genStringMessage("AP02",protocol_ic.AP02(runtime));\r
+ ret=protocol_ic.AP02(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret=genStringMessage("UD",protocol_fzd.UD(runtime));\r
+ ret=protocol_fzd.UD(runtime);\r
break;\r
case Config.PROTOCOL_MQTT:\r
ret=protocol_mqtt.UD(runtime);\r
}\r
return ret;\r
}\r
- public static String getPPG_ECG_MSG(Runtime runtime){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getPPG_ECG_MSG(Runtime runtime){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
ret=protocol_ic.APHP(runtime);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
}\r
- public static String getPPG_ECG_MSG(int ppg,int bph,int bpl){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getPPG_ECG_MSG(int ppg,int bph,int bpl){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
ret=protocol_ic.APHT(ppg,bph,bpl);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
}\r
\r
- public static String getBlood_MSG(int pbh, int pbl){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getBlood_MSG(int pbh, int pbl){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_IC:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_FZD:\r
ret=protocol_fzd.blood(pbl,pbh);\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";//protocol_mqtt.blood(pbl,pbh);\r
+ ret=null;//protocol_mqtt.blood(pbl,pbh);\r
break;\r
}\r
return ret;\r
}\r
\r
- public static String getOxygen_MSG(int ox){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getOxygen_MSG(int ox){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_IC:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_FZD:\r
ret=protocol_fzd.oxygen(ox);\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";//protocol_mqtt.oxygen(ox);\r
+ ret=null;//protocol_mqtt.oxygen(ox);\r
break;\r
}\r
return ret;\r
}\r
- public static String getPPG_MSG(int ppg){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getPPG_MSG(int ppg){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_IC:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_FZD:\r
ret=protocol_fzd.heart(ppg);\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";//protocol_mqtt.heart(ppg);\r
+ ret=null;//protocol_mqtt.heart(ppg);\r
break;\r
}\r
return ret;\r
}\r
- public static String getPPG_ECG_MSG(int ppg,int bph,int bpl,int spo2){\r
- if (is_protocol_not_Initialled()) return "";\r
+ public static StringMessage getPPG_ECG_MSG(int ppg,int bph,int bpl,int spo2){\r
+ if (is_protocol_not_Initialled()) return null;\r
\r
- String ret="";\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
ret=protocol_ic.APHP(ppg,bph,bpl,spo2);\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
}\r
return ret;\r
}\r
- public static String getSleepMSG(SleepInfo sr){\r
- if (is_protocol_not_Initialled()) return "";\r
- String ret="";\r
+ public static StringMessage getSleepMSG(SleepInfo sr){\r
+ if (is_protocol_not_Initialled()) return null;\r
+ StringMessage ret=null;\r
switch(Config.protocol_no)\r
{\r
case Config.PROTOCOL_JIAI:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_BEEHOME:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_IC:\r
ret=protocol_ic.APSL(sr.getCurrentDate(),sr.getDeepsleep_minutes(),sr.getLightsleep_minutes(),sr.getScore());\r
break;\r
case Config.PROTOCOL_FZD:\r
- ret="";\r
+ ret=null;\r
break;\r
case Config.PROTOCOL_MQTT:\r
- ret="";\r
+ ret=null;\r
break;\r
}\r
return ret;\r
\r
import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;\r
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;\r
+import static com.enqualcomm.support.LocationClient.getInstance;\r
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;\r
import static java.lang.Math.abs;\r
\r
return -1;\r
}\r
/*登录*/\r
- public static String AP00(Runtime ds) {\r
+ public static StringMessage AP00(Runtime ds) {\r
//示例数据:IWAP00867155030001063#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString();\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());\r
}\r
\r
//处理 登录 BP00\r
}\r
\r
\r
- public static String AP03(Runtime ds) {\r
+ public static StringMessage AP03(Runtime ds) {\r
//示例数据:IWAP03,06000908000102,5555,30# IWAP03,000000null00000,0,0#\r
//IW: 标识符\r
//AP03:命令字\r
//02为工作模式 ,(设防,工作模式如果为00,则代表无或未设置)\r
//5555: 计步步数,每次到达 9999 后重 0 开始计 (此处 9999 为示例,可以为2字节int 然后溢出归零)\r
//30: 翻滚次数\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+ 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())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString();\r
+ .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString());\r
}\r
//处理 心跳 BP03\r
public void handleBP03(String cmd){\r
}\r
\r
\r
- public static String AP10(Runtime ds){\r
+ public static StringMessage AP10(Runtime ds){\r
\r
/**\r
* IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502,\r
* 00:第一个0:是否需要回复地址信息,0:不回复,1回复.\r
* 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#\r
*/\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading())\r
.append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getAlarmType()).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append("00").append(CMDSPLIT) //不回复地址\r
- .append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getWifiInfo()).append(CMDEND).toString());\r
\r
}\r
\r
/*LBS+GPS混合定位*/\r
- public static String AP01(Runtime ds) {\r
+ public static StringMessage AP01(Runtime ds) {\r
//示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,\r
// 460,0,9520,3671,\r
// 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#\r
// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());\r
}\r
\r
//处理 定位 BP01\r
\r
\r
/*LBS+WiFi混合定位*/\r
- public static String AP02(Runtime ds) {\r
+ public static StringMessage AP02(Runtime ds) {\r
//示例数据:IWAP02,\r
// zh_cn,\r
// 0,\r
}\r
\r
ICLogger.i("Wifi ap sum "+apsum);\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append(0).append(CMDSPLIT) //为0时不回复地址\r
.append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据\r
- .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据\r
+ .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); //wifi信息数据\r
}\r
\r
//处理 定位 BP01\r
\r
\r
\r
- public static String APXL(String id){\r
+ public static StringMessage APXL(String id){\r
//设备响应: IWAPXL,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXL),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXL IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXL",APXL(index)));\r
+ connection.send(APXL(index));\r
}else{\r
ICLogger.i("BPXL format error!");\r
}\r
\r
}\r
\r
- public static String APXY(String id){\r
+ public static StringMessage APXY(String id){\r
//设备响应: IWAPXY,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXY),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXY IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXY",APXY(index)));\r
+ connection.send(APXY(index));\r
}else{\r
ICLogger.i("BPXY format error!");\r
}\r
\r
\r
\r
- public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
+ public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
//设备响应: IWAPJZ,792997,120,85,42,1#\r
//792997:指令流水号\r
// 高压120,低压85,年龄42,1 男性\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APJZ),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
.append(CMDSPLIT).append(id)\r
.append(CMDSPLIT).append(BPH)\r
.append(CMDSPLIT).append(BPL)\r
.append(CMDSPLIT).append(Age)\r
.append(CMDSPLIT).append(Sex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String strAge=list[5];\r
String strSex=list[6];\r
\r
- connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex)));\r
+ connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
}else{\r
//重启\r
\r
\r
- public static String AP18(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
+ public static StringMessage AP18(String index){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP18),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP18(Connection connection,String cmd) {\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP18",AP18(cmdlist[2])));\r
+ connection.send(AP18(cmdlist[2]));\r
\r
}\r
}\r
//恢复出厂设置\r
\r
- public static String AP17(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
+ public static StringMessage AP17(String index){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP17),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP17(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP17",AP17(cmdlist[2])));\r
+ connection.send(AP17(cmdlist[2]));\r
\r
}\r
}\r
//关机\r
\r
\r
- public static String AP31(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
+ public static StringMessage AP31(String index){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP31),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP31(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP31",AP31(cmdlist[2])));\r
+ connection.send(AP31(cmdlist[2]));\r
\r
}\r
}\r
\r
//设置SOS号码\r
- public static String AP12(String index,String phNum1,String phNum2,String phNum3){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
+ public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP12),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phNum1)\r
.append(CMDSPLIT).append(phNum2)\r
.append(CMDSPLIT).append(phNum3)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置SOS号码\r
String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):"";\r
String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):"";\r
ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString());\r
- connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
+ connection.send(AP12(index,phNum1,phNum2,phNum3));\r
\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
if (!phNum1.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1));\r
}\r
\r
\r
- public static String AP14(String index,String[] phnumbs){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
+ public static StringMessage AP14(String index,String[] phnumbs){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP14),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phnumbs[0])\r
.append(CMDSPLIT).append(phnumbs[1])\r
.append(CMDSPLIT).append(phnumbs[7])\r
.append(CMDSPLIT).append(phnumbs[8])\r
.append(CMDSPLIT).append(phnumbs[9])\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
//设置通讯录,白名单(10个)\r
public void handleBP14(Connection connection,String cmd , Runtime runtime){\r
\r
String index=cmdlist[2];\r
ICLogger.i(sb.toString());\r
- connection.send(genStringMessage("AP14",AP14(index,phnums)));\r
+ connection.send(AP14(index,phnums));\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
for (int i=0; i< phnums.length;i++){\r
String[] tmp= phnums[i].split("\\|");\r
\r
\r
\r
- public static String AP85(Runtime ds,String cmddata){\r
+ public static StringMessage AP85(Runtime ds,String cmddata){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP85),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
.append(CMDSPLIT).append(cmddata)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
//设置闹钟\r
String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
String replycmd = cmd.replace(replacement,"");\r
ICLogger.i("gen reply "+replacement+" "+replycmd);\r
- connection.send(genStringMessage("AP85",AP85(runtime,replycmd)));\r
+ connection.send(AP85(runtime,replycmd));\r
}\r
\r
\r
\r
\r
\r
- public static String AP33(String cmdindex,int workMode){\r
+ public static StringMessage AP33(String cmdindex,int workMode){\r
//IWAP33,080835,1#\r
//080835:指令流水号\r
//1:设置信息,供服务器同步\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP33), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置工作模式\r
\r
}\r
\r
- String msg=AP33(cmdlist[2],mod);\r
+ StringMessage msg=AP33(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP33",msg));\r
+ connection.send(msg);\r
log("reply msg "+msg);\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod);\r
Config.setLocationMode(runtime.getContextProxy().context,mod);\r
}\r
\r
\r
- public static String AP34(String cmdindex,int workMode){\r
+ public static StringMessage AP34(String cmdindex,int workMode){\r
//IWAP34,588854,1#\r
//080835:指令流水号\r
//8:模式\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP34),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置自定义工作模式\r
int Cycle=Integer.parseInt(cmdlist[4]);\r
int gpson=Integer.parseInt(cmdlist[5]);\r
\r
- String msg=AP34(cmdlist[2],mod);\r
+ StringMessage msg=AP34(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP34",msg));\r
+ connection.send(msg);\r
\r
if(gpson==1){\r
mod=ICLocation.CUSTOM_MOD8_GPS;\r
String txtmsg=cmdlist[3];\r
\r
txtmsg=Util.UrlGB2312ToUTF8(txtmsg);\r
- String msg=AP40(cmdindex,1);\r
+ StringMessage msg=AP40(cmdindex,1);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP40",msg));\r
+ connection.send(msg);\r
ICLogger.i("received Txt Msg "+txtmsg);\r
runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);\r
runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
ICLogger.i("BP40 format error!");\r
}\r
}\r
- public static String AP40(String cmdindex,int success){\r
+ public static StringMessage AP40(String cmdindex,int success){\r
\r
// IWAP40,080835,1#\r
// 080835:指令流水号\r
// 1:表示设备接受数据成功,0表示设备接受数据失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP40),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
* @param ds\r
* @return\r
*/\r
- public static String AP49(Runtime ds){\r
+ public static StringMessage AP49(Runtime ds){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
* @param ds\r
* @return\r
*/\r
- public static String APHT(Runtime ds){\r
+ public static StringMessage APHT(Runtime ds){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
.append(CMDSPLIT).append(ds.getHRS().getBPH())\r
.append(CMDSPLIT).append(ds.getHRS().getBPL())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
- public static String APHT(int ppg,int bph,int bpl){\r
+ public static StringMessage APHT(int ppg,int bph,int bpl){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ppg)\r
.append(CMDSPLIT).append(bph)\r
.append(CMDSPLIT).append(bpl)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
//立即定位反馈\r
- public static String AP16(String cmdindex){\r
+ public static StringMessage AP16(String cmdindex){\r
//IWAP16,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP16),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
.append(CMDSPLIT).append(cmdindex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
// 立即定位指令(长链接有效)\r
public void handleBP16(Connection connection,Runtime runtime,String cmd){\r
if(cmdlist.length==3){\r
log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
\r
- connection.send(genStringMessage("AP16",AP16(cmdlist[2])));\r
+ connection.send(AP16(cmdlist[2]));\r
}else{\r
log("error BP16 format");\r
}\r
\r
\r
/*通过基站获取时间和坐标*/\r
- public static String APTM(Runtime ds){\r
+ public static StringMessage APTM(Runtime ds){\r
//示例数据:IWAPTM,460,0,9750,3613#\r
//说明:\r
//IW:标识符\r
//9750: LAC\r
//3613: CID\r
\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMCC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMNC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getLAC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
\r
}\r
\r
- public static String AP15(String index){\r
+ public static StringMessage AP15(String index){\r
//IWAP15, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP15),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置定位周期\r
if(list.length==4){\r
String index=list[2];\r
String time=list[3];\r
- connection.send(genStringMessage("AP15",AP15(index)));\r
+ connection.send(AP15(index));\r
ICLogger.i("BP15 , 定位周期="+time+"秒");\r
\r
Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
\r
\r
/*语音下行反馈*/\r
- public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
+ public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
//示例数据:IWAP28,D3590D54,xxxx,6,1,1#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP28),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
.append(CMDSPLIT).append(name)\r
.append(CMDSPLIT).append(msg)\r
.append(CMDSPLIT).append(packagecount)\r
.append(CMDSPLIT).append(currentpackageindex)\r
.append(CMDSPLIT).append(received_success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//处理 BP28 语音消息\r
.append(",packetDatalen = ").append(packetData.length);\r
\r
log( stringBuffer.toString());\r
- connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1)));\r
+ connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
log("================"+voicePacket.getInstance().toString());\r
if (voicePacket.getInstance().isFinished())\r
}\r
\r
//白名单开关(下行协议号:BP84,响应:AP84)\r
- public static String AP84(String index,int success){\r
+ public static StringMessage AP84(String index,int success){\r
\r
//设备响应: IWAP80,080835,1#\r
//080835:指令流水号\r
//1:表示设备执行成功,0 表示设备执行失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP84),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP84(String cmd,Connection connection){\r
if (list.length==4){\r
String index=list[2];\r
String whitelist_switch=list[3];\r
- connection.send(genStringMessage("AP84",AP84(index,1)));\r
+ connection.send(AP84(index,1));\r
\r
if (whitelist_switch.equals("1")){\r
Util.setSystemProperties("persist.sys.whitelist.enable","true");\r
}\r
\r
//17.绑定解绑(下行协议号:BP68,响应:AP68)\r
- public static String AP68(String index){\r
+ public static StringMessage AP68(String index){\r
\r
//设备响应: IWAP86, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP68),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP68(String cmd,Connection connection,Runtime runtime){\r
if (list.length==4){\r
String index=list[2];\r
String type=list[3];\r
- connection.send(genStringMessage("AP86",AP68(index)));\r
+ connection.send(AP68(index));\r
ICLogger.i("收到服务器消息:"+(type.equals("1")?"绑定成功 ":"未激活或者解绑"));\r
\r
}else{\r
\r
}\r
//17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)\r
- public static String AP86(String index){\r
+ public static StringMessage AP86(String index){\r
\r
//设备响应: IWAP86, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP86),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP86(String cmd,Connection connection,Runtime runtime){\r
String index=list[2];\r
String type=list[3];\r
String cycle=list[4];\r
- connection.send(genStringMessage("AP86",AP86(index)));\r
+ connection.send(AP86(index));\r
ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
\r
//发送重置PPGCycle的广播,会在CoreServer里面执行\r
}\r
\r
}\r
- public static String AP88(String index){\r
+ public static StringMessage AP88(String index){\r
//设备响应: IWAP88, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP88),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public static void handleBP88(String cmd,Connection connection){\r
\r
if (list.length==2){\r
String index=list[1];\r
- connection.send(genStringMessage("AP88",AP88(index)));\r
+ connection.send(AP88(index));\r
ICLogger.i("收到服务器消息:查询设备");\r
\r
}else{\r
}\r
\r
//18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)\r
- public static String AP89(String index){\r
+ public static StringMessage AP89(String index){\r
\r
//设备响应: IWAP89, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP89),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP89(String cmd,Connection connection){\r
String BPH_L=list[6];\r
String BPL_H=list[7];\r
String BPL_L=list[8];\r
- connection.send(genStringMessage("AP89",AP89(index)));\r
+ connection.send(AP89(index));\r
ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L);\r
}else{\r
ICLogger.i("BP89 format error!");\r
}\r
\r
//体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE)\r
- public static String APTE(String index,int freq){\r
+ public static StringMessage APTE(String index,int freq){\r
\r
//设备响应: IWAPTE,080835,60#\r
//080835:指令流水号\r
//1:表示设备接受数据成功,0表示设备接受数据失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTE),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(freq)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPTE(String cmd,Connection connection,Runtime runtime){\r
String index=list[2];\r
String freqstr=list[3];\r
int freq=Integer.parseInt(freqstr);\r
- connection.send(genStringMessage("APTE",APTE(index,freq)));\r
+ connection.send(APTE(index,freq));\r
ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。");\r
Config.setTemperatureTestCycle(runtime,freq*60);\r
CoreService.getInstance().setTempAlarm();\r
}\r
\r
//体温上行(上行协议号:APTP,响应:BPTP)\r
- public static String APTP(double wrist_temp,double body_temp){\r
+ public static StringMessage APTP(double wrist_temp,double body_temp){\r
\r
//设备: IWAPTP,36.3,33,132#\r
//IW:标识符\r
//APTP : 命令字符\r
//35.3:测量体温 (摄氏度)\r
//33,132:温补用的参数,此处不用,可以用0 来代替。\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))\r
.append(CMDSPLIT).append(String.format("%1$.2f",wrist_temp))\r
.append(CMDSPLIT).append(String.format("%1$.2f",body_temp))\r
.append(CMDSPLIT).append(0)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPTP(){\r
}\r
\r
\r
- public static String APX1(String id){\r
+ public static StringMessage APX1(String id){\r
//设备响应: IWAPX1, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APX1),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String strBPL=list[5];\r
String strSpO2=list[6];\r
\r
- connection.send(genStringMessage("APJZ",APX1(index)));\r
+ connection.send(APX1(index));\r
\r
int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust;\r
ppg_adjust=Integer.parseInt(strXL);\r
\r
\r
\r
- public static String APS4(String id){\r
+ public static StringMessage APS4(String id){\r
//设备响应: IWAPS4,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APS4),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
\r
String index=list[2];\r
String imei=list[1];\r
- connection.send(genStringMessage("APS4",APS4(index)));\r
+ connection.send(APS4(index));\r
\r
String setting1;\r
switch(list.length){\r
}\r
}\r
\r
- public static String APHP(Runtime ds){\r
+ public static StringMessage APHP(Runtime ds){\r
//IWAPHP,60,130,85,95,90, , , , , , , , #\r
//IW:标识符\r
//APHT : 命令字符\r
//95:血氧\r
//90:血糖\r
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
+ return genStringMessage( cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
.append(CMDSPLIT).append(ds.getHRS().getBPH())\r
.append(CMDSPLIT).append(ds.getHRS().getBPL())\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
- public static String APHP(int ppg,int bph, int bpl, int spo2){\r
+ public static StringMessage APHP(int ppg,int bph, int bpl, int spo2){\r
//IWAPHP,60,130,85,95,90, , , , , , , , #\r
//IW:标识符\r
//APHT : 命令字符\r
//95:血氧\r
//90:血糖\r
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
.append(CMDSPLIT).append(ppg)\r
.append(CMDSPLIT).append(bph)\r
.append(CMDSPLIT).append(bpl)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPHP(){\r
return key;\r
}\r
\r
- public static String genFZDCMD( String CMD){\r
+ public static StringMessage genFZDCMD( String CMD){\r
StringBuilder sb=new StringBuilder();\r
int len=CMD.length();\r
String header=genHeader(len,CMD);\r
String keyheader=keyheader(CMD,len);\r
sb.append(CMDHEADER).append(keyheader).append(header).append(CMDEND);\r
- return sb.toString();\r
+ return genStringMessage(CMD,sb.toString());\r
}\r
- public static String genFZDCMD( String CMD,String data){\r
+ public static StringMessage genFZDCMD( String CMD,String data){\r
StringBuilder sb=new StringBuilder();\r
String data_buf=CMD+CMDSPLIT+data;\r
int data_buf_len=data_buf.length();\r
String header=genHeader(data_buf_len,CMD);\r
String keyheader=keyheader(CMD,data_buf_len);//计算header md5值\r
sb.append(CMDHEADER).append(keyheader).append(header).append(CMDSPLIT).append(data).append(CMDEND);\r
- return sb.toString();\r
+ return genStringMessage(CMD,sb.toString());\r
}\r
/*登录*/\r
- public static String LK() {\r
+ public static StringMessage LK() {\r
/*IC*YYYYYYYYYYYYYYY*LEN*LK*/\r
return genFZDCMD(cmdMap.get(CMD_TYPE.LK));\r
}\r
/**\r
* 绑定\r
* */\r
- public static String PING(){\r
+ public static StringMessage PING(){\r
// IC*YYYYYYYYYYYYYYY*LEN*PING\r
return genFZDCMD(cmdMap.get(CMD_TYPE.PING));\r
}\r
\r
}\r
\r
- public static String KA(Runtime runtime){\r
+ public static StringMessage KA(Runtime runtime){\r
//[IC*YYYYYYYYYYYYYYY*LEN*KA,日期,步数,翻滚次数,电量百分数] 实例:[IC*334588000000156*0014*KA,120414,50,100,100]\r
StringBuilder sb=new StringBuilder();\r
String cmd=cmdMap.get(CMD_TYPE.KA);\r
}\r
\r
/*LBS+GPS混合定位*/\r
- public static String UD(Runtime runtime) {\r
+ public static StringMessage UD(Runtime runtime) {\r
/***\r
* [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\r
* 29,21242,124,9529,21151,120,9529,63556,119,0]\r
}\r
\r
\r
- public static String UPLOAD(){\r
+ public static StringMessage UPLOAD(){\r
\r
return genFZDCMD(cmdMap.get(CMD_TYPE.UPLOAD));\r
}\r
\r
public void handleUPLOAD(Connection connection,Runtime runtime,String cmd,String data){\r
- connection.send(genStringMessage("UPLOAD",UPLOAD()));\r
+ connection.send(UPLOAD());\r
int timesecond=Integer.parseInt(data);\r
int mod=runtime.getLocationInstance().getWorkingMod();\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod);\r
\r
}\r
\r
- public static String heart(int hrt){\r
+ public static StringMessage heart(int hrt){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.heart),String.valueOf(hrt));\r
}\r
- public static String oxygen(int ox){\r
+ public static StringMessage oxygen(int ox){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.oxygen),String.valueOf(ox));\r
}\r
\r
- public static String blood(int pbl,int pbh){\r
+ public static StringMessage blood(int pbl,int pbh){\r
String data=pbh+CMDSPLIT+pbl;\r
return genFZDCMD(cmdMap.get(CMD_TYPE.blood),data);\r
}\r
\r
- public static String temp(double temp){\r
+ public static StringMessage temp(double temp){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.temp),String.format("%.1f",temp));\r
}\r
- public static String POWEROFF(){\r
+ public static StringMessage POWEROFF(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.POWEROFF));\r
}\r
public void handlePOWEROFF(Connection connection) {\r
\r
- connection.send(genStringMessage("POWEROFF",POWEROFF()));\r
+ connection.send(POWEROFF());\r
}\r
- public static String CR(){\r
+ public static StringMessage CR(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.CR));\r
}\r
public void handleCR(Connection connection) {\r
\r
- connection.send(genStringMessage("CR",CR()));\r
+ connection.send(CR());\r
}\r
- public static String bldstart(){\r
+ public static StringMessage bldstart(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.bldstart));\r
}\r
public void handleBldstart(Connection connection) {\r
\r
- connection.send(genStringMessage("bldstart",bldstart()));\r
+ connection.send(bldstart());\r
}\r
- public static String wdstart(){\r
+ public static StringMessage wdstart(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.wdstart));\r
}\r
public void handleWdstart(Connection connection,Runtime runtime ,String data) {\r
\r
- connection.send(genStringMessage("wdstart",wdstart()));\r
+ connection.send(wdstart());\r
int freq=Integer.parseInt(data);\r
\r
\r
// String temperatureMsg=temp(body_temp);\r
// connection.send(genStringMessage("temp",temperatureMsg));\r
}\r
- public static String hrtstart(){\r
+ public static StringMessage hrtstart(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.hrtstart));\r
}\r
public void handleHrtstart(Connection connection) {\r
\r
- connection.send(genStringMessage("hrtstart",hrtstart()));\r
+ connection.send(hrtstart());\r
}\r
- public static String FIND(){\r
+ public static StringMessage FIND(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.FIND));\r
}\r
public void handleFIND(Connection connection) {\r
\r
- connection.send(genStringMessage("FIND",FIND()));\r
+ connection.send(FIND());\r
}\r
- public static String SOS(){\r
+ public static StringMessage SOS(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.SOS));\r
}\r
\r
\r
public void handleSOS(Connection connection,Runtime runtime,String cmd,String data) {\r
\r
- connection.send(genStringMessage("SOS",SOS()));\r
+ connection.send(SOS());\r
if (data!=null && data.length()>0) {\r
String list[] = data.split(CMDSPLIT);\r
if (list.length==1){\r
\r
\r
}\r
- public static String PHL(){\r
+ public static StringMessage PHL(){\r
return genFZDCMD(cmdMap.get(CMD_TYPE.PHL));\r
}\r
\r
}else{\r
ICLogger.i("没有电话本!执行清除操作!");\r
}\r
- connection.send(genStringMessage("PHL",PHL()));\r
+ connection.send(PHL());\r
}\r
\r
public void sendBroadcast(String cmd, Runtime dev) {\r
return -1;\r
}\r
/*登录*/\r
- public static String AP00(Runtime ds) {\r
+ public static StringMessage AP00(Runtime ds) {\r
//示例数据:IWAP00867155030001063#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString();\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());\r
}\r
\r
//处理 登录 BP00\r
}\r
\r
\r
- public static String AP03(Runtime ds) {\r
+ public static StringMessage AP03(Runtime ds) {\r
//示例数据:IWAP03,06000908000102,5555,30# IWAP03,000000null00000,0,0#\r
//IW: 标识符\r
//AP03:命令字\r
//02为工作模式 ,(设防,工作模式如果为00,则代表无或未设置)\r
//5555: 计步步数,每次到达 9999 后重 0 开始计 (此处 9999 为示例,可以为2字节int 然后溢出归零)\r
//30: 翻滚次数\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+ 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())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString();\r
+ .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString());\r
}\r
//处理 心跳 BP03\r
public void handleBP03(String cmd){\r
}\r
\r
\r
- public static String AP10(Runtime ds){\r
+ public static StringMessage AP10(Runtime ds){\r
\r
/**\r
* IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502,\r
* 00:第一个0:是否需要回复地址信息,0:不回复,1回复.\r
* 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#\r
*/\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading())\r
.append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getAlarmType()).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append("00").append(CMDSPLIT) //不回复地址\r
- .append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getWifiInfo()).append(CMDEND).toString());\r
\r
}\r
\r
/*LBS+GPS混合定位*/\r
- public static String AP01(Runtime ds) {\r
+ public static StringMessage AP01(Runtime ds) {\r
//示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,\r
// 460,0,9520,3671,\r
// 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#\r
// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());\r
}\r
\r
//处理 定位 BP01\r
\r
\r
/*LBS+WiFi混合定位*/\r
- public static String AP02(Runtime ds) {\r
+ public static StringMessage AP02(Runtime ds) {\r
//示例数据:IWAP02,\r
// zh_cn,\r
// 0,\r
}\r
\r
ICLogger.i("Wifi ap sum "+apsum);\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append(0).append(CMDSPLIT) //为0时不回复地址\r
.append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据\r
- .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据\r
+ .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); //wifi信息数据\r
}\r
\r
//处理 定位 BP01\r
\r
\r
\r
- public static String APXL(String id){\r
+ public static StringMessage APXL(String id){\r
//设备响应: IWAPXL,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXL),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXL IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXL",APXL(index)));\r
+ connection.send(APXL(index));\r
}else{\r
ICLogger.i("BPXL format error!");\r
}\r
\r
}\r
\r
- public static String APXY(String id){\r
+ public static StringMessage APXY(String id){\r
//设备响应: IWAPXY,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXY),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXY IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXY",APXY(index)));\r
+ connection.send(APXY(index));\r
}else{\r
ICLogger.i("BPXY format error!");\r
}\r
\r
\r
\r
- public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
+ public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
//设备响应: IWAPJZ,792997,120,85,42,1#\r
//792997:指令流水号\r
// 高压120,低压85,年龄42,1 男性\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APJZ),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
.append(CMDSPLIT).append(id)\r
.append(CMDSPLIT).append(BPH)\r
.append(CMDSPLIT).append(BPL)\r
.append(CMDSPLIT).append(Age)\r
.append(CMDSPLIT).append(Sex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String strAge=list[5];\r
String strSex=list[6];\r
\r
- connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex)));\r
+ connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
}else{\r
//重启\r
\r
\r
- public static String AP18(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
+ public static StringMessage AP18(String index){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP18),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP18(Connection connection,String cmd) {\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP18",AP18(cmdlist[2])));\r
+ connection.send(AP18(cmdlist[2]));\r
\r
}\r
}\r
//恢复出厂设置\r
\r
- public static String AP17(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
+ public static StringMessage AP17(String index){\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP17),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP17(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP17",AP17(cmdlist[2])));\r
+ connection.send(AP17(cmdlist[2]));\r
\r
}\r
}\r
//关机\r
\r
\r
- public static String AP31(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
+ public static StringMessage AP31(String index){\r
+ return genStringMessage("AP31",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP31(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP31",AP31(cmdlist[2])));\r
+ connection.send(AP31(cmdlist[2]));\r
\r
}\r
}\r
\r
//设置SOS号码\r
- public static String AP12(String index,String phNum1,String phNum2,String phNum3){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
+ public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){\r
+ return genStringMessage("AP12",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phNum1)\r
.append(CMDSPLIT).append(phNum2)\r
.append(CMDSPLIT).append(phNum3)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置SOS号码\r
String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):"";\r
String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):"";\r
ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString());\r
- connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
+ connection.send(AP12(index,phNum1,phNum2,phNum3));\r
\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
// if(Config.custom_branch_name.equals("AK")){\r
}\r
\r
\r
- public static String AP14(String index,String[] phnumbs){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
+ public static StringMessage AP14(String index,String[] phnumbs){\r
+ return genStringMessage("AP14",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phnumbs[0])\r
.append(CMDSPLIT).append(phnumbs[1])\r
.append(CMDSPLIT).append(phnumbs[7])\r
.append(CMDSPLIT).append(phnumbs[8])\r
.append(CMDSPLIT).append(phnumbs[9])\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
//设置通讯录,白名单(10个)\r
public void handleBP14(Connection connection,String cmd , Runtime runtime){\r
\r
String index=cmdlist[2];\r
ICLogger.i(sb.toString());\r
- connection.send(genStringMessage("AP14",AP14(index,phnums)));\r
+ connection.send(AP14(index,phnums));\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
for (int i=0; i< phnums.length;i++){\r
String[] tmp= phnums[i].split("\\|");\r
\r
\r
\r
- public static String AP85(Runtime ds,String cmddata){\r
+ public static StringMessage AP85(Runtime ds,String cmddata){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
+ return genStringMessage("AP85",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
.append(CMDSPLIT).append(cmddata)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
//设置闹钟\r
String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
String replycmd = cmd.replace(replacement,"");\r
ICLogger.i("gen reply "+replacement+" "+replycmd);\r
- connection.send(genStringMessage("AP85",AP85(runtime,replycmd)));\r
+ connection.send(AP85(runtime,replycmd));\r
}\r
\r
\r
\r
\r
\r
- public static String AP33(String cmdindex,int workMode){\r
+ public static StringMessage AP33(String cmdindex,int workMode){\r
//IWAP33,080835,1#\r
//080835:指令流水号\r
//1:设置信息,供服务器同步\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
+ return genStringMessage("AP33",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置工作模式\r
\r
}\r
\r
- String msg=AP33(cmdlist[2],mod);\r
+ StringMessage msg=AP33(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP33",msg));\r
+ connection.send(msg);\r
log("reply msg "+msg);\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod);\r
Config.setLocationMode(runtime.getContextProxy().context,mod);\r
}\r
\r
\r
- public static String AP34(String cmdindex,int workMode){\r
+ public static StringMessage AP34(String cmdindex,int workMode){\r
//IWAP34,588854,1#\r
//080835:指令流水号\r
//8:模式\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
+ return genStringMessage("AP34",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置自定义工作模式\r
int Cycle=Integer.parseInt(cmdlist[4]);\r
int gpson=Integer.parseInt(cmdlist[5]);\r
\r
- String msg=AP34(cmdlist[2],mod);\r
+ StringMessage msg=AP34(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP34",msg));\r
+ connection.send(msg);\r
\r
if(gpson==1){\r
mod=ICLocation.CUSTOM_MOD8_GPS;\r
}else{\r
mod=ICLocation.CUSTOM_MOD8_WIFI;\r
}\r
- log("reply msg "+msg);\r
+ log("reply msg "+msg.isFromCache());\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
Config.setLocationMode(runtime.getContextProxy().context,mod);\r
Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
String txtmsg=cmdlist[3];\r
\r
txtmsg=Util.UrlGB2312ToUTF8(txtmsg);\r
- String msg=AP40(cmdindex,1);\r
+ StringMessage msg=AP40(cmdindex,1);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP40",msg));\r
+ connection.send(msg);\r
ICLogger.i("received Txt Msg "+txtmsg);\r
runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);\r
runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
ICLogger.i("BP40 format error!");\r
}\r
}\r
- public static String AP40(String cmdindex,int success){\r
+ public static StringMessage AP40(String cmdindex,int success){\r
\r
// IWAP40,080835,1#\r
// 080835:指令流水号\r
// 1:表示设备接受数据成功,0表示设备接受数据失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))\r
+ return genStringMessage("AP40",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
* @param ds\r
* @return\r
*/\r
- public static String AP49(Runtime ds){\r
+ public static StringMessage AP49(Runtime ds){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
* @param ds\r
* @return\r
*/\r
- public static String APHT(Runtime ds){\r
+ public static StringMessage APHT(Runtime ds){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
.append(CMDSPLIT).append(ds.getHRS().getBPH())\r
.append(CMDSPLIT).append(ds.getHRS().getBPL())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
- public static String APHT(int ppg,int bph,int bpl){\r
+ public static StringMessage APHT(int ppg,int bph,int bpl){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ppg)\r
.append(CMDSPLIT).append(bph)\r
.append(CMDSPLIT).append(bpl)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
//立即定位反馈\r
- public static String AP16(String cmdindex){\r
+ public static StringMessage AP16(String cmdindex){\r
//IWAP16,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP16),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
.append(CMDSPLIT).append(cmdindex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
// 立即定位指令(长链接有效)\r
public void handleBP16(Connection connection,Runtime runtime,String cmd){\r
if(cmdlist.length==3){\r
log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
\r
- connection.send(genStringMessage("AP16",AP16(cmdlist[2])));\r
+ connection.send(AP16(cmdlist[2]));\r
}else{\r
log("error BP16 format");\r
}\r
\r
\r
/*通过基站获取时间和坐标*/\r
- public static String APTM(Runtime ds){\r
+ public static StringMessage APTM(Runtime ds){\r
//示例数据:IWAPTM,460,0,9750,3613#\r
//说明:\r
//IW:标识符\r
//9750: LAC\r
//3613: CID\r
\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMCC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMNC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getLAC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
\r
}\r
\r
- public static String AP15(String index){\r
+ public static StringMessage AP15(String index){\r
//IWAP15, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
+ return genStringMessage("AP15",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置定位周期\r
if(list.length==4){\r
String index=list[2];\r
String time=list[3];\r
- connection.send(genStringMessage("AP15",AP15(index)));\r
+ connection.send(AP15(index));\r
ICLogger.i("BP15 , 定位周期="+time+"秒");\r
\r
Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
\r
\r
/*语音下行反馈*/\r
- public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
+ public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
//示例数据:IWAP28,D3590D54,xxxx,6,1,1#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
+ return genStringMessage("AP28",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
.append(CMDSPLIT).append(name)\r
.append(CMDSPLIT).append(msg)\r
.append(CMDSPLIT).append(packagecount)\r
.append(CMDSPLIT).append(currentpackageindex)\r
.append(CMDSPLIT).append(received_success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//处理 BP28 语音消息\r
.append(",packetDatalen = ").append(packetData.length);\r
\r
log( stringBuffer.toString());\r
- connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1)));\r
+ connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
log("================"+voicePacket.getInstance().toString());\r
if (voicePacket.getInstance().isFinished())\r
}\r
\r
//白名单开关(下行协议号:BP84,响应:AP84)\r
- public static String AP84(String index,int success){\r
+ public static StringMessage AP84(String index,int success){\r
\r
//设备响应: IWAP80,080835,1#\r
//080835:指令流水号\r
//1:表示设备执行成功,0 表示设备执行失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
+ return genStringMessage("AP84",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP84(String cmd,Connection connection){\r
if (list.length==4){\r
String index=list[2];\r
String whitelist_switch=list[3];\r
- connection.send(genStringMessage("AP84",AP84(index,1)));\r
+ connection.send(AP84(index,1));\r
\r
if (whitelist_switch.equals("1")){\r
Util.setSystemProperties("persist.sys.whitelist.enable","true");\r
}\r
\r
//17.绑定解绑(下行协议号:BP68,响应:AP68)\r
- public static String AP68(String index,String cmd){\r
+ public static StringMessage AP68(String index,String cmd){\r
\r
//设备响应: IWAP86, 080835,1#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))\r
+ return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(cmd)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP68(String cmd,Connection connection,Runtime runtime){\r
if (list.length==4){\r
String index=list[2];\r
String type=list[3];\r
- connection.send(genStringMessage("AP86",AP68(index,type)));\r
+ connection.send(AP68(index,type));\r
ICLogger.i("收到服务器消息:"+(type.equals("1")?"绑定成功 ":"未激活或者解绑"));\r
if (Config.custom_branch_name.equals("YQ")||Config.custom_branch_name.equals("YQ_EN")) {//AK-YQ\r
if (type.equals("1")) {\r
\r
}\r
//17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)\r
- public static String AP86(String index){\r
+ public static StringMessage AP86(String index){\r
\r
//设备响应: IWAP86, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
+ return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP86(String cmd,Connection connection,Runtime runtime){\r
String index=list[2];\r
String type=list[3];\r
String cycle=list[4];\r
- connection.send(genStringMessage("AP86",AP86(index)));\r
+ connection.send(AP86(index));\r
ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
\r
//发送重置PPGCycle的广播,会在CoreServer里面执行\r
}\r
\r
}\r
- public static String AP88(String index){\r
+ public static StringMessage AP88(String index){\r
//设备响应: IWAP88, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))\r
+ return genStringMessage("AP88",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public static void handleBP88(String cmd,Connection connection){\r
\r
if (list.length==2){\r
String index=list[1];\r
- connection.send(genStringMessage("AP88",AP88(index)));\r
+ connection.send(AP88(index));\r
ICLogger.i("收到服务器消息:查询设备");\r
\r
}else{\r
}\r
\r
//18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)\r
- public static String AP89(String index){\r
+ public static StringMessage AP89(String index){\r
\r
//设备响应: IWAP89, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
+ return genStringMessage("AP89",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP89(String cmd,Connection connection){\r
String BPH_L=list[6];\r
String BPL_H=list[7];\r
String BPL_L=list[8];\r
- connection.send(genStringMessage("AP89",AP89(index)));\r
+ connection.send(AP89(index));\r
\r
\r
\r
}\r
\r
//体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE)\r
- public static String APTE(String index,int freq){\r
+ public static StringMessage APTE(String index,int freq){\r
\r
//设备响应: IWAPTE,080835,60#\r
//080835:指令流水号\r
//1:表示设备接受数据成功,0表示设备接受数据失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))\r
+ return genStringMessage("APTE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(freq)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPTE(String cmd,Connection connection,Runtime runtime){\r
String index=list[2];\r
String freqstr=list[3];\r
int freq=Integer.parseInt(freqstr);\r
- connection.send(genStringMessage("APTE",APTE(index,freq)));\r
+ connection.send(APTE(index,freq));\r
ICLogger.i("收到服务器指令:测量体温 "+freq+"分钟一次。");\r
Config.setTemperatureTestCycle(runtime,freq*60);\r
CoreService.getInstance().setTempAlarm();\r
}\r
\r
//体温上行(上行协议号:APTP,响应:BPTP)\r
- public static String APTP(double wrist_temp,double body_temp){\r
+ public static StringMessage APTP(double wrist_temp,double body_temp){\r
\r
//设备: IWAPTP,36.3,33,132#\r
//IW:标识符\r
//APTP : 命令字符\r
//35.3:测量体温 (摄氏度)\r
//33,132:温补用的参数,此处不用,可以用0 来代替。\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))\r
.append(CMDSPLIT).append(String.format("%1$.2f",wrist_temp))\r
.append(CMDSPLIT).append(String.format("%1$.2f",body_temp))\r
.append(CMDSPLIT).append(0)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPTP(){\r
}\r
\r
\r
- public static String APX1(String id){\r
+ public static StringMessage APX1(String id){\r
//设备响应: IWAPX1, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))\r
+ return genStringMessage("APX1",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String strBPL=list[5];\r
String strSpO2=list[6];\r
\r
- connection.send(genStringMessage("APJZ",APX1(index)));\r
+ connection.send(APX1(index));\r
\r
int ppg_adjust,bph_adjust,bpl_adjust,spo2_adjust;\r
ppg_adjust=Integer.parseInt(strXL);\r
\r
\r
\r
- public static String APS4(String id){\r
+ public static StringMessage APS4(String id){\r
//设备响应: IWAPS4,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
+ return genStringMessage("APS4",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
\r
String index=list[2];\r
String imei=list[1];\r
- connection.send(genStringMessage("APS4",APS4(index)));\r
+ connection.send(APS4(index));\r
\r
String setting1;\r
switch(list.length){\r
}\r
}\r
\r
- public static String APHP(Runtime ds){\r
+ public static StringMessage APHP(Runtime ds){\r
//IWAPHP,60,130,85,95,90, , , , , , , , #\r
//IW:标识符\r
//APHT : 命令字符\r
//95:血氧\r
//90:血糖\r
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
.append(CMDSPLIT).append(ds.getHRS().getBPH())\r
.append(CMDSPLIT).append(ds.getHRS().getBPL())\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
- public static String APHP(int ppg,int bph, int bpl, int spo2){\r
+ public static StringMessage APHP(int ppg,int bph, int bpl, int spo2){\r
//IWAPHP,60,130,85,95,90, , , , , , , , #\r
//IW:标识符\r
//APHT : 命令字符\r
//95:血氧\r
//90:血糖\r
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))\r
.append(CMDSPLIT).append(ppg)\r
.append(CMDSPLIT).append(bph)\r
.append(CMDSPLIT).append(bpl)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
.append(CMDSPLIT)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
\r
}\r
\r
- public static String APDE(String id){\r
+ public static StringMessage APDE(String id){\r
/***\r
* 示例:\r
* 设备响应: IWAPDE,080835#\r
* 080835:指令流水号\r
* 说明: 本消息适用所有终端\r
*/\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE))\r
+ return genStringMessage("APDE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPDE(Connection connection,String cmd,Runtime runtime){\r
\r
String index=list[2];\r
String msg=list[3];\r
- connection.send(genStringMessage("APDE",APDE(index)));\r
+ connection.send(APDE(index));\r
if ( Integer.parseInt(msg) == 0) {\r
ICLogger.i("Handle BPDE index " + index + ", 进入禁止区域 ");\r
runtime.Fence_Warning_flag=1;\r
\r
\r
}\r
- public static String APDG(String id){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG))\r
+ public static StringMessage APDG(String id){\r
+ return genStringMessage("APDG",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBPDG(Connection connection,String cmd,Runtime runtime){\r
String switch_on=list[3];\r
String min_temp=list[4];\r
String max_temp=list[5];\r
- connection.send(genStringMessage("APDG",APDG(index)));\r
+ connection.send(APDG(index));\r
if ( Integer.parseInt(switch_on) == 1) {\r
ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值开 min="+min_temp+",max="+max_temp);\r
runtime.tempInfo.setBodyTempThreshold(Double.valueOf(max_temp),Double.valueOf(min_temp));\r
}\r
}\r
\r
- public static String APSL(String date,int deepsleep,int lightsleep,int score){\r
+ public static StringMessage APSL(String date,int deepsleep,int lightsleep,int score){\r
/***\r
* 示例:\r
* IWAPSL,202008003,240,120,90#\r
.append(CMDSPLIT).append(lightsleep)\r
.append(CMDSPLIT).append(score)\r
.append(CMDEND).toString();\r
- return sb;\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APSL),sb);\r
}\r
\r
- public static String AP46(String id,String cmd)\r
+ public static StringMessage AP46(String id,String cmd)\r
{\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP46),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46))\r
.append(CMDSPLIT).append(id)\r
.append(CMDSPLIT).append(cmd)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP46(String cmd , Connection connection,Runtime runtime) {\r
if (cmdlist.length==5) {\r
String tmp = cmdlist[4];\r
}\r
- connection.send(genStringMessage("AP46",AP46(id,cdd)));\r
+ connection.send(AP46(id,cdd));\r
\r
if (cdd.equals("1")) {\r
//delay 启动\r
}\r
\r
\r
- public static String APDH(String id,String cmd)\r
+ public static StringMessage APDH(String id,String cmd)\r
{\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))\r
+ return genStringMessage("APDH",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))\r
.append(CMDSPLIT).append(id)\r
.append(CMDSPLIT).append(cmd)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
tmp=tmp.replace(CMDEND,"").trim();\r
\r
if (tmp.isEmpty()) tmp="15";\r
- connection.send(genStringMessage("APDH",APDH(id,cdd)));\r
+ connection.send(APDH(id,cdd));\r
\r
if (cdd.equals("1")) {\r
//delay 启动\r
BPHT,\r
APTM,//基站校时及获取定位\r
BPTM,\r
+ AP94,//消息已读\r
+ BP94,\r
/* 服务器发起*/\r
AP12,\r
BP12,//SOS 号码设置\r
BP86,//心率血压测试周期\r
AP89,\r
BP89,//心率血压阀值设置\r
+ AP93,\r
+ BP93,//服务器下发文本\r
UNKNOWN_CMD,\r
}\r
\r
cmdMap.put(CMD_TYPE.BPHT, "BPHT");\r
cmdMap.put(CMD_TYPE.APTM, "APTM");\r
cmdMap.put(CMD_TYPE.BPTM, "BPTM");\r
+ cmdMap.put(CMD_TYPE.AP94, "AP94");\r
+ cmdMap.put(CMD_TYPE.BP94, "BP94");\r
cmdMap.put(CMD_TYPE.AP12, "AP12");\r
cmdMap.put(CMD_TYPE.BP12, "BP12");\r
cmdMap.put(CMD_TYPE.AP14, "AP14");\r
cmdMap.put(CMD_TYPE.BP86, "BP86");\r
cmdMap.put(CMD_TYPE.AP89, "AP89");\r
cmdMap.put(CMD_TYPE.BP89, "BP89");\r
+ cmdMap.put(CMD_TYPE.AP93, "AP93");\r
+ cmdMap.put(CMD_TYPE.BP93, "BP93");\r
}\r
\r
private Connection mConnection=null;\r
return -1;\r
}\r
/*登录*/\r
- public static String AP00(Runtime ds) {\r
+ public static StringMessage AP00(Runtime ds) {\r
//示例数据:IWAP00867155030001063#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString();\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());\r
}\r
\r
//处理 登录 BP00\r
}\r
\r
\r
- public static String AP03(Runtime ds) {\r
+ public static StringMessage AP03(Runtime ds) {\r
//示例数据:IWAP03,06000908000102,5555,30# IWAP03,000000null00000,0,0#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+ 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())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString();\r
+ .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString());\r
}\r
//处理 心跳 BP03\r
public void handleBP03(String cmd){\r
}\r
\r
\r
- public static String AP10(Runtime ds){\r
+ public static StringMessage AP10(Runtime ds){\r
\r
/**\r
* IWAP10080524A2232.9806N11404.9355E000.1 061830 323.87 060 009 080 0 05 02,\r
* zh-cn:设备语言\r
* 00:第一个0:是否需要回复地址信息,0:不回复,1回复.\r
*/\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
.append(ds.getAlarmType()).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append("00").append(CMDSPLIT) //不回复地址\r
- .append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getWifiInfo()).append(CMDEND).toString());\r
\r
}\r
\r
/*LBS+GPS混合定位*/\r
- public static String AP01(Runtime ds) {\r
+ public static StringMessage AP01(Runtime ds) {\r
//示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,\r
// 460,0,9520,3671,\r
// 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#\r
// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
+ return genStringMessage( cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
- .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
+ .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());\r
}\r
\r
//处理 定位 BP01\r
\r
\r
/*LBS+WiFi混合定位*/\r
- public static String AP02(Runtime ds) {\r
+ public static StringMessage AP02(Runtime ds) {\r
//示例数据:IWAP02,\r
// zh_cn,\r
// 0,\r
}\r
\r
ICLogger.i("Wifi ap sum "+apsum);\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
.append(ds.getLanguage()).append(CMDSPLIT)\r
.append(0).append(CMDSPLIT) //为0时不回复地址\r
.append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据\r
- .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString(); //wifi信息数据\r
+ .append(apsum).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString()); //wifi信息数据\r
}\r
\r
//处理 定位 BP01\r
\r
\r
\r
- public static String APXL(String id){\r
+ public static StringMessage APXL(String id){\r
//设备响应: IWAPXL,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
+ return genStringMessage("APXL",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXL IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXL",APXL(index)));\r
+ connection.send(APXL(index));\r
}else{\r
ICLogger.i("BPXL format error!");\r
}\r
\r
}\r
\r
- public static String APXY(String id){\r
+ public static StringMessage APXY(String id){\r
//设备响应: IWAPXY,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
+ return genStringMessage("APXY",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
.append(CMDSPLIT).append(id)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String index=list[2];\r
String imei=list[1];\r
ICLogger.i("Handle BPXY IMEI "+imei+",index "+index);\r
- connection.send(genStringMessage("APXY",APXY(index)));\r
+ connection.send(APXY(index));\r
}else{\r
ICLogger.i("BPXY format error!");\r
}\r
\r
\r
\r
- public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
+ public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
//设备响应: IWAPJZ,792997,120,85,42,1#\r
//792997:指令流水号\r
// 高压120,低压85,年龄42,1 男性\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
+ return genStringMessage("APJZ",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))\r
.append(CMDSPLIT).append(id)\r
.append(CMDSPLIT).append(BPH)\r
.append(CMDSPLIT).append(BPL)\r
.append(CMDSPLIT).append(Age)\r
.append(CMDSPLIT).append(Sex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
/**\r
String strAge=list[5];\r
String strSex=list[6];\r
\r
- connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex)));\r
+ connection.send(APJZ(index,strBPH,strBPL,strAge,strSex));\r
runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
}else{\r
//重启\r
\r
\r
- public static String AP18(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
+ public static StringMessage AP18(String index){\r
+ return genStringMessage("AP18",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP18(Connection connection,String cmd) {\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP18",AP18(cmdlist[2])));\r
+ connection.send(AP18(cmdlist[2]));\r
\r
}\r
}\r
//恢复出厂设置\r
\r
- public static String AP17(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
+ public static StringMessage AP17(String index){\r
+ return genStringMessage("AP17",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP17(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP17",AP17(cmdlist[2])));\r
+ connection.send(AP17(cmdlist[2]));\r
\r
}\r
}\r
//关机\r
\r
\r
- public static String AP31(String index){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
+ public static StringMessage AP31(String index){\r
+ return genStringMessage("AP31",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
public void handleBP31(Connection connection,String cmd) {\r
\r
String[] cmdlist=cmd.split(CMDSPLIT);\r
if (cmdlist.length==3) {\r
\r
- connection.send(genStringMessage("AP31",AP31(cmdlist[2])));\r
+ connection.send(AP31(cmdlist[2]));\r
\r
}\r
}\r
\r
//设置SOS号码\r
- public static String AP12(String index,String phNum1,String phNum2,String phNum3){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
+ public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){\r
+ return genStringMessage("AP12",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phNum1)\r
.append(CMDSPLIT).append(phNum2)\r
.append(CMDSPLIT).append(phNum3)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置SOS号码\r
String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):"";\r
String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):"";\r
ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString());\r
- connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
+ connection.send(AP12(index,phNum1,phNum2,phNum3));\r
\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
if (!phNum1.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1));\r
}\r
\r
\r
- public static String AP14(String index,String[] phnumbs){\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
+ public static StringMessage AP14(String index,String[] phnumbs){\r
+ return genStringMessage("AP14",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(phnumbs[0])\r
.append(CMDSPLIT).append(phnumbs[1])\r
.append(CMDSPLIT).append(phnumbs[7])\r
.append(CMDSPLIT).append(phnumbs[8])\r
.append(CMDSPLIT).append(phnumbs[9])\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
//设置通讯录,白名单(10个)\r
public void handleBP14(Connection connection,String cmd , Runtime runtime){\r
\r
String index=cmdlist[2];\r
ICLogger.i(sb.toString());\r
- connection.send(genStringMessage("AP14",AP14(index,phnums)));\r
+ connection.send(AP14(index,phnums));\r
ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
for (int i=0; i< phnums.length;i++){\r
String[] tmp= phnums[i].split("\\|");\r
\r
\r
\r
- public static String AP85(Runtime ds,String cmddata){\r
+ public static StringMessage AP85(Runtime ds,String cmddata){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
+ return genStringMessage("AP85",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
.append(CMDSPLIT).append(cmddata)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
//设置闹钟\r
String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
String replycmd = cmd.replace(replacement,"");\r
ICLogger.i("gen reply "+replacement+" "+replycmd);\r
- connection.send(genStringMessage("AP85",AP85(runtime,replycmd)));\r
+ connection.send(AP85(runtime,replycmd));\r
}\r
\r
\r
\r
\r
\r
- public static String AP33(String cmdindex,int workMode){\r
+ public static StringMessage AP33(String cmdindex,int workMode){\r
//IWAP33,080835,1#\r
//080835:指令流水号\r
//1:设置信息,供服务器同步\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
+ return genStringMessage("AP33",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置工作模式\r
\r
}\r
\r
- String msg=AP33(cmdlist[2],mod);\r
+ StringMessage msg=AP33(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP33",msg));\r
- log("reply msg "+msg);\r
+ connection.send(msg);\r
+ log("reply msg "+msg.isFromCache());\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod);\r
Config.setLocationMode(runtime.getContextProxy().context,mod);\r
Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
}\r
\r
\r
- public static String AP34(String cmdindex,int workMode){\r
+ public static StringMessage AP34(String cmdindex,int workMode){\r
//IWAP34,588854,1#\r
//080835:指令流水号\r
//8:模式\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
+ return genStringMessage("AP34",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
.append(CMDSPLIT).append(cmdindex)\r
.append(CMDSPLIT).append(workMode)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置自定义工作模式\r
int Cycle=Integer.parseInt(cmdlist[4]);\r
int gpson=Integer.parseInt(cmdlist[5]);\r
\r
- String msg=AP34(cmdlist[2],mod);\r
+ StringMessage msg=AP34(cmdlist[2],mod);\r
//设定当前工作模式及循环频率\r
- connection.send(genStringMessage("AP34",msg));\r
+ connection.send(msg);\r
\r
if(gpson==1){\r
mod=ICLocation.CUSTOM_MOD8_GPS;\r
}else{\r
mod=ICLocation.CUSTOM_MOD8_WIFI;\r
}\r
- log("reply msg "+msg);\r
+ log("reply msg "+msg.isFromCache());\r
log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
Config.setLocationMode(runtime.getContextProxy().context,mod);\r
Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
* @param ds\r
* @return\r
*/\r
- public static String AP49(Runtime ds){\r
+ public static StringMessage AP49(Runtime ds){\r
//示例数据:IWAP49,68##\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
* @param ds\r
* @return\r
*/\r
- public static String APHT(Runtime ds){\r
+ public static StringMessage APHT(Runtime ds){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ds.getHRS().getPPG())\r
.append(CMDSPLIT).append(ds.getHRS().getBPH())\r
.append(CMDSPLIT).append(ds.getHRS().getBPL())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
- public static String APHT(int ppg,int bph,int bpl){\r
+ public static StringMessage APHT(int ppg,int bph,int bpl){\r
//IWAPHT,60,130,85#\r
//说明:\r
//IW:标识符\r
//85 : 血压低压 [舒张压]\r
//平台响应: IWBPHT#\r
//表示平台已接收,可不作响应\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
.append(CMDSPLIT).append(ppg)\r
.append(CMDSPLIT).append(bph)\r
.append(CMDSPLIT).append(bpl)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
\r
//立即定位反馈\r
- public static String AP16(String cmdindex){\r
+ public static StringMessage AP16(String cmdindex){\r
//IWAP16,080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
+ return genStringMessage("AP16",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
.append(CMDSPLIT).append(cmdindex)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
// 立即定位指令(长链接有效)\r
public void handleBP16(Connection connection,Runtime runtime,String cmd){\r
if(cmdlist.length==3){\r
log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
\r
- connection.send(genStringMessage("AP16",AP16(cmdlist[2])));\r
+ connection.send(AP16(cmdlist[2]));\r
}else{\r
log("error BP16 format");\r
}\r
\r
\r
/*通过基站获取时间和坐标*/\r
- public static String APTM(Runtime ds){\r
+ public static StringMessage APTM(Runtime ds){\r
//示例数据:IWAPTM,460,0,9750,3613#\r
//说明:\r
//IW:标识符\r
//9750: LAC\r
//3613: CID\r
\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMCC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getMNC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getLAC())\r
.append(CMDSPLIT).append(ds.getLocationInstance().getGSMStationCID())\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
\r
}\r
\r
\r
}\r
\r
- public static String AP15(String index){\r
+ public static StringMessage AP15(String index){\r
//IWAP15, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
+ return genStringMessage("AP15",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//设置定位周期\r
if(list.length==4){\r
String index=list[2];\r
String time=list[3];\r
- connection.send(genStringMessage("AP15",AP15(index)));\r
+ connection.send(AP15(index));\r
ICLogger.i("BP15 , 定位周期="+time+"秒");\r
\r
Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
\r
\r
/*语音下行反馈*/\r
- public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
+ public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
//示例数据:IWAP28,D3590D54,xxxx,6,1,1#\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
+ return genStringMessage("AP28",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
.append(CMDSPLIT).append(name)\r
.append(CMDSPLIT).append(msg)\r
.append(CMDSPLIT).append(packagecount)\r
.append(CMDSPLIT).append(currentpackageindex)\r
.append(CMDSPLIT).append(received_success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
//处理 BP28 语音消息\r
.append(",packetDatalen = ").append(packetData.length);\r
\r
log( stringBuffer.toString());\r
- connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1)));\r
+ connection.send(AP28(Name,appendIndex,packetCount,currentId,1));\r
voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
log("================"+voicePacket.getInstance().toString());\r
if (voicePacket.getInstance().isFinished())\r
}\r
\r
//白名单开关(下行协议号:BP84,响应:AP84)\r
- public static String AP84(String index,int success){\r
+ public static StringMessage AP84(String index,int success){\r
\r
//设备响应: IWAP80,080835,1#\r
//080835:指令流水号\r
//1:表示设备执行成功,0 表示设备执行失败\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
+ return genStringMessage("AP84",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))\r
.append(CMDSPLIT).append(index)\r
.append(CMDSPLIT).append(success)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP84(String cmd,Connection connection){\r
if (list.length==4){\r
String index=list[2];\r
String whitelist_switch=list[3];\r
- connection.send(genStringMessage("AP84",AP84(index,1)));\r
+ connection.send(AP84(index,1));\r
\r
if (whitelist_switch.equals("1")){\r
Util.setSystemProperties("persist.sys.whitelist.enable","true");\r
}\r
\r
//17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)\r
- public static String AP86(String index){\r
+ public static StringMessage AP86(String index){\r
\r
//设备响应: IWAP86, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
+ return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP86(String cmd,Connection connection,Runtime runtime){\r
String index=list[2];\r
String type=list[3];\r
String cycle=list[4];\r
- connection.send(genStringMessage("AP86",AP86(index)));\r
+ connection.send(AP86(index));\r
ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
\r
//发送重置PPGCycle的广播,会在CoreServer里面执行\r
}\r
\r
//18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)\r
- public static String AP89(String index){\r
+ public static StringMessage AP89(String index){\r
\r
//设备响应: IWAP89, 080835#\r
//080835:指令流水号\r
- return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
+ return genStringMessage("AP89",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))\r
.append(CMDSPLIT).append(index)\r
- .append(CMDEND).toString();\r
+ .append(CMDEND).toString());\r
}\r
\r
public void handleBP89(String cmd,Connection connection){\r
String BPH_L=list[6];\r
String BPL_H=list[7];\r
String BPL_L=list[8];\r
- connection.send(genStringMessage("AP89",AP89(index)));\r
+ connection.send(AP89(index));\r
ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L);\r
}else{\r
ICLogger.i("BP89 format error!");\r
}\r
\r
}\r
+\r
+ public static StringMessage AP93(String index){\r
+ /***\r
+ * 20.发送文字到手环(下行协议号:BP93,响应:AP93)\r
+ * 示例:\r
+ * IWBP93, 353456789012345, 080835,123456, 8fd9662f4f8b5b50,2,3#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BP93 : 命令字符\r
+ * 353456789012345:IMEI号,设备唯一ID\r
+ * 080835 :指令流水号\r
+ * 123456:文字来源系统流水号\r
+ * 8fd9662f4f8b5b50: 这是例子(文字内容)\r
+ * 2:语音播报次数,取值范围0-3,0为不播报\r
+ * 3:震动次数,取值范围为0-4, 0为不震动\r
+ * 设备响应: IWAP93,080835#\r
+ * 080835: 设备响应的时候带上响应流水号\r
+ * 说明: 本消息适用所有终端\r
+ */\r
+ return genStringMessage("AP93",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP93))\r
+ .append(CMDSPLIT).append(index)\r
+ .append(CMDEND).toString());\r
+\r
+ }\r
+\r
+ public void handleBP93(Connection connection,Runtime runtime , String cmd){\r
+ /***\r
+ * 20.发送文字到手环(下行协议号:BP93,响应:AP93)\r
+ * 示例:\r
+ * IWBP93, 353456789012345, 080835,123456, 8fd9662f4f8b5b50,2,3#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BP93 : 命令字符\r
+ * 353456789012345:IMEI号,设备唯一ID\r
+ * 080835 :指令流水号\r
+ * 123456:文字来源系统流水号\r
+ * 8fd9662f4f8b5b50: 这是例子(文字内容)\r
+ * 2:语音播报次数,取值范围0-3,0为不播报\r
+ * 3:震动次数,取值范围为0-4, 0为不震动\r
+ * 设备响应: IWAP93,080835#\r
+ * 080835: 设备响应的时候带上响应流水号\r
+ * 说明: 本消息适用所有终端\r
+ */\r
+ String[] cmdlist=cmd.split(",");\r
+ if (cmdlist.length == 7){\r
+ String cmdindex=cmdlist[2];\r
+ String msg_index_no=cmdlist[3];\r
+ String txtmsg=cmdlist[4];\r
+ String play_time=cmdlist[5];\r
+ String vib_time=cmdlist[6];\r
+ ICLogger.i("收到服务器文本 "+txtmsg+" 序号 "+msg_index_no+" , 播放 "+play_time+" 次,震动 "+vib_time+" 次!");\r
+ txtmsg=Util.UrlGB2312ToUTF8(txtmsg);\r
+ StringMessage msg=AP93(cmdindex);\r
+ //设定当前工作模式及循环频率\r
+ connection.send(msg);\r
+ ICLogger.i("received Txt Msg "+txtmsg);\r
+ runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);\r
+ runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
+ }else{\r
+ ICLogger.i("BP40 format error!");\r
+ }\r
+\r
+ }\r
+\r
+ public static StringMessage AP94(Runtime runtime , String index_of_msg ){\r
+ /***\r
+ * 15确认已读文字(上行协议号:AP94,响应:BP94)\r
+ * 示例:\r
+ * IWAP94,123456,1#\r
+ * 说明:\r
+ * IWAP94:标识符\r
+ * APHCI: 命令字符\r
+ * 123456: 文字来源系统流水号\r
+ * 1:确认阅读、0:取消阅读\r
+ * 平台响应: IWBP94#\r
+ * 表示平台已接收,可不作响应\r
+ * 说明: 本消息适用所有终端\r
+ */\r
+\r
+ //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。\r
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP94),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94))\r
+ .append(CMDSPLIT).append(index_of_msg)\r
+ .append(CMDSPLIT).append("1")\r
+ .append(CMDEND).toString());\r
+\r
+ }\r
+\r
+ public void handleBP94(){\r
+\r
+ }\r
+\r
public boolean handleCmd(CMD_TYPE type, String cmd) {\r
\r
//普通非二进制命令用此函数处理\r
//心率/血压阀值\r
handleBP89(cmd,mConnection);\r
break;\r
+\r
+ case BP94:\r
+ handleBP94();\r
+ break;\r
+ case BP93:\r
+ //服务器下发文版\r
+ handleBP93(mConnection,mRuntime,cmd);\r
+ break;\r
}\r
\r
return ret;\r
public static final String projName="WBG100";\r
public static final String protocolVersion="v1";\r
public static final String mqttKey="QWER15WTF156OQRT1230";\r
+ public static String MQTT_CLIENT_TOPIC_HEADER="";\r
public enum CMD_TYPE {\r
// cmd_type 含义\r
// 终端主动上传\r
\r
\r
public static String isCmdStr(StringMessage msg){\r
- ICLogger.i("mqtt isCmdStr cmd "+msg.cmd());\r
+\r
+ String imei="";\r
+ if(CoreService.getInstance()!=null)\r
+ imei=CoreService.getInstance().getRuntime().IMEI();\r
+ String cmdtype = msg.cmd().replace(projName+"/"+protocolVersion+"/","").replace("/"+imei,"");\r
+ ICLogger.i("mqtt isCmdStr topic "+msg.cmd()+" ,cmd "+cmdtype);\r
for (CMD_TYPE key : cmdMap.keySet()) {\r
ICLogger.i("mqtt isCmdStr cmd "+msg.cmd()+" key "+cmdMap.get(key));\r
- if (cmdMap.get(key).equals(msg.cmd())){\r
- return msg.cmd();\r
+ if (cmdMap.get(key).equals(cmdtype)){\r
+ return cmdtype;\r
}\r
}\r
return "";\r
.append("/").append(protocolVersion)\r
.append("/").append(cmdtype)\r
.append("/").append(imei);\r
+\r
return genStringMessage(sbtopic.toString(),sb.toString());\r
}\r
\r