APGJ,//关机前的确定
APFX,//飞行模式开关
UNKNOWN_CMD,
+ BP75,//闹钟
}
private static HashMap<CMD_TYPE, String> cmdMap;
cmdMap.put(CMD_TYPE.APTQ, "APTQ");
cmdMap.put(CMD_TYPE.BPTQ, "BPTQ");
cmdMap.put(CMD_TYPE.APAT, "APAT");
+ cmdMap.put(CMD_TYPE.BP75, "BP75");
cmdMap.put(CMD_TYPE.BPAT, "BPAT");
cmdMap.put(CMD_TYPE.APBT, "APBT");
cmdMap.put(CMD_TYPE.BPBT, "BPBT");
String last_inCompletecmd = "";
String cmd_msgbuf = new String(bytes);
ICLogger.d("bytes.size " + bytes.length);
-// cmdbuf.append(cmd_msgbuf);
+ //cmdbuf.append(cmd_msgbuf);
cmdbuf.append(cmd_msgbuf);
ICLogger.d("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());
- /*
+ /*
如果不是 #结尾,就认为 接收数据不全,置位。
*/
if (cmdbuf.toString().endsWith(CMDEND)) {
if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + cmd);
cmd = cmd.replace(" ", "");
switch (type) {
+ case AP00:
+ break;
case BP00: //登录包
handleBP00(mRuntime, cmd);
ICLogger.i("服务器收到登录包AP00");
mConnection.DeliverCMDMessageToSystem("login", cmd);//通知下面线程状态变化
break;
+ case AP01:
+ break;
case BP01: //gps定位包
handleBP01(cmd);
ICLogger.i("服务器收到定位AP01");
mConnection.DeliverCMDMessageToSystem("AP01", cmd);//通知下面线程状态变化
break;
+ case AP02:
+ break;
case BP02:// wifi定位包
handleBP02(cmd);
ICLogger.i("服务器收到定位AP02");
mConnection.DeliverCMDMessageToSystem("AP02", cmd);//通知下面线程状态变化
break;
+ case AP92:
+ break;
+ case BP92:
+ break;
+ case AP94:
+ break;
+ case BP94:
+ break;
+ case AP03:
+ break;
case BP03: //心跳包
handleBP03(cmd);
ICLogger.i("服务器收到心跳包AP03");
mConnection.DeliverCMDMessageToSystem("heartbeat", cmd);//通知下面线程状态变化
break;
+ case AP05:
+ break;
+ case BP05:
+ break;
+ case AP07:
+ break;
case BP07:
//收到发送的语音包
handleBP07(cmd, mConnection);
break;
+ case AP10:
+ break;
case BP10:
//报警包
mConnection.DeliverCMDMessageToSystem("AP10", cmd);//通知下面线程状态变化
handleBPJZ(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器血压校准命令");
break;
+ case AP49:
+ break;
+ case BP49:
+ break;
+ case APHT:
+ break;
case BPHT:
ICLogger.i("服务器收到上传的心率血压");
mConnection.DeliverCMDMessageToSystem("APHT", cmd);//通知下面线程状态变化
mConnection.DeliverCMDMessageToSystem("APMK", cmd);//通知下面线程状态变化
handleBPMK(mRuntime, cmd);
break;
+ case BP75:
+ ICLogger.d("收到闹钟设置指令BP75");
+ handleBP75(mConnection, mRuntime, cmd);
+ break;
case BPDH:
ICLogger.i("聆听");
handleBPDH(mConnection, mRuntime, cmd);
break;
+ case APTM:
+ break;
+ case APCH:
+ break;
+ case BPCH:
+ break;
+ case APBR:
+ break;
+ case AP12:
+ break;
+ case AP14:
+ break;
+ case AP15:
+ break;
+ case AP16:
+ break;
+ case AP17:
+ break;
+ case AP18:
+ break;
+ case AP21:
+ break;
+ case BP21:
+ break;
+ case AP28:
+ break;
+ case BP28:
+ break;
+ case AP31:
+ break;
+ case AP33:
+ break;
+ case AP34:
+ break;
+ case AP40:
+ break;
+ case AP68:
+ break;
+ case APXL:
+ break;
+ case APXY:
+ break;
+ case APJZ:
+ break;
+ case AP84:
+ break;
+ case AP85:
+ break;
+ case AP86:
+ break;
+ case AP87:
+ break;
+ case AP88:
+ break;
+ case AP89:
+ break;
+ case APTE:
+ break;
+ case APTP:
+ break;
+ case APX1:
+ break;
+ case APS4:
+ break;
+ case APHP:
+ break;
+ case APDE:
+ break;
+ case APDG:
+ break;
+ case APTU:
+ break;
+ case APSL:
+ break;
+ case AP46:
+ break;
+ case APDH:
+ break;
+ case AP99:
+ break;
+ case BP99:
+ break;
+ case APTQ:
+ break;
+ case APAT:
+ break;
+ case APBT:
+ break;
+ case APBS:
+ break;
+ case APWL:
+ break;
+ case AP65:
+ break;
+ case AP47:
+ break;
+ case APGJ:
+ break;
+ case APFX:
+ break;
+ case UNKNOWN_CMD:
+ break;
}
return ret;
}
+ /**
+ * 闹钟数据
+ *
+ * @param mConnection
+ * @param mRuntime
+ * @param cmd
+ */
+ private void handleBP75(Connection mConnection, Runtime mRuntime, String cmd) {
+ //解析数据
+ ICLogger.d("cmd is == > " + cmd);
+ // IWBP75,
+ // 867282038639874,
+ // 97145,
+ // 1,
+ // 6,
+ // 403836f63d09192,1045,1234567,1
+ // @5403836f63d09192,1230,1234567,1
+ // @5403836f63d09192,,1234567,0
+ // @559d6c3463d09192,,1234567,0
+ // @559d6c3463d09192,,1234567,0
+ // @559d6c3463d09192,,1234567,0
+ try {
+ String[] split = cmd.split(CMDSPLIT);
+ int cmdLen = 0;
+ cmdLen += split[0].length() + 1;
+ cmdLen += split[1].length() + 1;
+ String streamCode = split[2];
+ cmdLen += streamCode.length() + 1;
+ ICLogger.d("streamCode == > " + streamCode);
+ String isAllOpen = split[3];
+ cmdLen += isAllOpen.length() + 1;
+ ICLogger.d("isAllOpen == > " + isAllOpen);
+ String alarmCount = split[4];
+ ICLogger.d("alarmCount = > " + alarmCount);
+ cmdLen += alarmCount.length() + 1;
+ String substring = cmd.substring(cmdLen);
+ String[] alarmItemArray = substring.split("@");
+ for (String itemStr : alarmItemArray) {
+ ICLogger.d("itemStr==> " + itemStr);
+ String[] itemDetail = itemStr.split(CMDSPLIT);
+ //第一个是名称
+ String alarmName = Util.decodeUnicode2Utf8(itemDetail[0]);
+ ICLogger.d("alarmName == > " + alarmName);
+ //第二个是时间
+ String alarmTime = itemDetail[1];
+ ICLogger.d("alarmTime == > " + alarmTime);
+ //第三个是循环星期
+ String weekItem = itemDetail[2];
+ ICLogger.d("weekItem == > " + weekItem);
+ //第四个是开关
+ String isOpen = itemDetail[3];
+ ICLogger.d("isOpen == > " + isOpen);
+ //添加到闹钟数据库中
+ //TODO:
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
/**
* 处理麦克风的指令