BPS4,//提醒设置(时间段)\r
APHP,//上报心率血压血氧\r
BPHP,\r
+ APDE,//进出围栏通知\r
+ BPDE,\r
+ APDF,//体温阀值设置\r
+ BPDF,\r
+ APTU,//上传语音图片\r
+ BPTU,\r
UNKNOWN_CMD,\r
}\r
\r
cmdMap.put(CMD_TYPE.BPS4, "BPS4");\r
cmdMap.put(CMD_TYPE.APHP, "APHP");\r
cmdMap.put(CMD_TYPE.BPHP, "BPHP");\r
+ cmdMap.put(CMD_TYPE.APDE, "APDE");\r
+ cmdMap.put(CMD_TYPE.BPDE, "BPDE");\r
+ cmdMap.put(CMD_TYPE.APDF, "APDF");\r
+ cmdMap.put(CMD_TYPE.BPDF, "BPDF");\r
+ cmdMap.put(CMD_TYPE.APTU, "APTU");\r
+ cmdMap.put(CMD_TYPE.BPTU, "BPTU");\r
\r
}\r
\r
\r
}\r
\r
+ public static String APDE(String id){\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
+ .append(CMDSPLIT).append(id)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ public void handleBPDE(){\r
+\r
+\r
+\r
+ }\r
+ public static String APDF(String id){\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
+ .append(CMDSPLIT).append(id)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ public void handleBPDF(){\r
+\r
+\r
+\r
+ }\r
+ public static String APTU(String id){\r
+ /**\r
+ * 10.设备录音图片(设备上行)(上行协议:APTU,响应:BPTU)\r
+ * 示例:\r
+ * IWAPTU,6654111,080835,1,1,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#\r
+ * 说明:\r
+ * IW:标识符\r
+ * BPCU : 命令字符\r
+ * 6654111:语音图片文字目标 (同步监护人列表的用户唯一标识ID)<扩展字段目前不需要,可以传空字符>\r
+ * 080835 :指令流水号\r
+ * 1:文件类型\r
+ * 1:内容类型 类型说明如下表\r
+ * 文件类型 内容类型\r
+ * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展\r
+ * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展\r
+ * 6:内容包分包总数\r
+ * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同\r
+ * 1024 :语音包长度\r
+ * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数\r
+ * 语音包上传规则:\r
+ * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。\r
+ * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。\r
+ * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\r
+ */\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))\r
+ .append(CMDSPLIT).append(id)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ /**\r
+ * 主要为久坐设置提醒时长。\r
+ * @param cmd\r
+ * @param connection\r
+ * @param runtime\r
+ */\r
+ public void handleBPTU(String cmd,Connection connection,Runtime runtime){\r
+ //IWBPS4,353456789012345,080835,1|1234567|0900|1100|180, 2|1234567|0900|1100|180, 1|1234567|0900|1100|180#\r
+ //说明:\r
+// IW:标识符\r
+// BPS4: 命令字符\r
+// 353456789012345:设备IMEI或者ID\r
+// 080835 :指令流水号\r
+// 1|1234567|0900|1100|180:类型(1久坐,2喝水)|重复周期|开始时间|结束时间|时间间隔(单位秒)\r
+// 重复周期、开始结束时间格式 参考BP85闹钟设置,\r
+//#:结尾标识符\r
+ String[] list=cmd.split(CMDSPLIT);\r
+ if (list.length>=4){\r
+\r
+ String index=list[2];\r
+ String imei=list[1];\r
+ connection.send(genStringMessage("APS4",APS4(index)));\r
+\r
+ String setting1;\r
+ switch(list.length){\r
+ case 10:\r
+ setting1=list[9];\r
+ ICLogger.i("set 7th alarm "+setting1);\r
+ case 9:\r
+ setting1=list[8];\r
+ ICLogger.i("set 6th alarm "+setting1);\r
+ case 8:\r
+ setting1=list[7];\r
+ ICLogger.i("set 5th alarm "+setting1);\r
+ case 7:\r
+ setting1=list[6];\r
+ ICLogger.i("set 4th alarm "+setting1);\r
+ case 6:\r
+ setting1=list[5];\r
+ ICLogger.i("set 3rd alarm "+setting1);\r
+ case 5:\r
+ setting1=list[4];\r
+ ICLogger.i("set 2nt alarm "+setting1);\r
+ case 4:\r
+ setting1=list[3];\r
+ ICLogger.i("set 1st alarm "+setting1);\r
+ break;\r
+ }\r
+\r
+ ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", get "+(list.length-3) +" settings");\r
+ }else{\r
+ ICLogger.i("BPX1 format error!");\r
+ }\r
+ }\r
+\r
+\r
+\r
+\r
public boolean handleCmd(CMD_TYPE type, String cmd) {\r
\r
//普通非二进制命令用此函数处理\r
case BP89:\r
//心率/血压阀值\r
handleBP89(cmd,mConnection);\r
- mConnection.DeliverCMDMessageToSystem("AP89",cmd);//通知下面线程状态变化\r
+ mConnection.DeliverCMDMessageToSystem("IWAP89",cmd);//通知下面线程状态变化\r
break;\r
\r
case BPTE: //设置测试体温\r
handleBPTE(cmd,mConnection,mRuntime);\r
- mConnection.DeliverCMDMessageToSystem("APTE",cmd);//通知下面线程状态变化\r
+ mConnection.DeliverCMDMessageToSystem("IWAPTE",cmd);//通知下面线程状态变化\r
break;\r
\r
case BPTP:\r
case BPX1://设置 心率血压血氧修正值\r
handleBPX1(cmd,mConnection,mRuntime);\r
ICLogger.i("收到服务器设置 心率血压血氧修正值BPX1");\r
- mConnection.DeliverCMDMessageToSystem("APX1",cmd);//通知下面线程状态变化\r
+ mConnection.DeliverCMDMessageToSystem("IWAPX1",cmd);//通知下面线程状态变化\r
break;\r
\r
case BPS4: //提醒设置(时间段) 主要为久坐设置提醒时长。\r
handleBPS4(cmd,mConnection,mRuntime);\r
ICLogger.i("收到 提醒设置(时间段)");\r
- mConnection.DeliverCMDMessageToSystem("APS4",cmd);//通知下面线程状态变化\r
+ mConnection.DeliverCMDMessageToSystem("IWAPS4",cmd);//通知下面线程状态变化\r
+ break;\r
+\r
+ case BPTU:\r
+ handleBPTU(cmd,mConnection,mRuntime);\r
+ ICLogger.i("服务器 收到 语音图片信息!");\r
+ mConnection.DeliverCMDMessageToSystem("IWAPTU",cmd);//通知下面线程状态变化\r
+ break;\r
+ case BPDE:\r
+ handleBPDE();\r
+ ICLogger.i(" 收到 进出围栏通知!");\r
+ mConnection.DeliverCMDMessageToSystem("IWAPDE",cmd);//通知下面线程状态变化\r
+ break;\r
+\r
+ case BPDF:\r
+ handleBPDF();\r
+ ICLogger.i(" 收到 体温阈值设置!");\r
+ mConnection.DeliverCMDMessageToSystem("IWAPDF",cmd);//通知下面线程状态变化\r
break;\r
}\r
\r