private static protocol_fzd protocolfzd_handler = null;
private static protocol_mqtt protocolmqtt_handler = null;
private static protocol_anan protocolanan_handler = null;
+ private static protocol_s123 protocols123_handler = null;
+ private static protocol_gator protocolgator_handler = null;
+
public static protocol_fzd getProtocolfzd_handler() {
return protocolfzd_handler;
if (protocolanan_handler == null) {
protocolanan_handler = new protocol_anan(connect, runtime);
}
+ if (protocols123_handler == null) {
+ protocols123_handler = new protocol_s123(connect, runtime);
+ }
+ if (protocolgator_handler == null) {
+ protocolgator_handler = new protocol_gator(connect, runtime);
+ }
}
private static boolean is_protocol_not_Initialled() {
|| protocolic_handler == null ||
protocolfzd_handler == null ||
protocolmqtt_handler == null ||
- protocolanan_handler == null);
+ protocolanan_handler == null ||
+ protocols123_handler == null ||
+ protocolgator_handler == null
+ );
}
/*
case PROTOCOL_ANAN:
protocolanan_handler.parseCmd(bytes);
break;
-
+ case Config.PROTOCOL_S123:
+ protocols123_handler.parserCmd(bytes);
+ break;
+ case Config.PROTOCOL_GATOR:
+ protocolgator_handler.parserCmd(bytes);
+ break;
}
return true;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.isCmdStr(msg);
break;
+ case Config.PROTOCOL_S123:
+ ret = protocol_s123.isCmdStr(msg.isFromCache());
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = protocol_gator.isCmdStr(msg.isFromCache());
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.LGZONE(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.temp(body_temp, runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.APCH(charging);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP10(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP00(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP03(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP01(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP02(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.AP07(packetTime, count, index, datalen, amrdata);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.APHT(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.APHT(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.blood(pbl, pbh, runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.oxygen(ox, runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = protocol_mqtt.heart(ppg, runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
//ret = protocol_anan.APTQ(runtime);
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = protocol_anan.defaultServerIp;
break;
+ case Config.PROTOCOL_S123:
+ ret = protocol_s123.defaultServerIP;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = protocol_gator.defaultServerIP;
+ break;
}
ICLogger.d("ip ==> " + ret);
return ret;
case PROTOCOL_ANAN:
ret = protocol_anan.defaultServerPort;
break;
+ case Config.PROTOCOL_S123:
+ ret = protocol_s123.defaultServerPort;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = protocol_gator.defaultServerPort;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case Config.PROTOCOL_MQTT:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
case PROTOCOL_ANAN:
ret = null;
break;
+ case Config.PROTOCOL_S123:
+ ret = null;
+ break;
+ case Config.PROTOCOL_GATOR:
+ ret = null;
+ break;
}
return ret;
}
package com.ic.protocols;
import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
-import com.enqualcomm.support.provider.FZDAlarmProvider;
-import com.enqualcomm.support.provider.FZDDatabaseHelper;
-import com.enqualcomm.support.provider.FZDSettingsProvider;
import com.enqualcomm.support.service.HeartRateManager;
import com.enqualcomm.support.utils.CameraUtil;
import com.enqualcomm.support.utils.Connection;
BP65,//设置音量
AP47,
BP47,//设置震动
- BPCM,//照相禁用开关
- BPMK,//关闭麦克风
- APGJ,//关机前的确定
- APFX,//飞行模式开关
UNKNOWN_CMD,
- BP75,//闹钟
}
private static HashMap<CMD_TYPE, String> cmdMap;
cmdMap.put(CMD_TYPE.BPCH, "BPCH");
cmdMap.put(CMD_TYPE.APBR, "APBR");
cmdMap.put(CMD_TYPE.BPBR, "BPBR");
- cmdMap.put(CMD_TYPE.APGJ, "APGJ");
/* 服务器发起*/
cmdMap.put(CMD_TYPE.AP12, "AP12");
cmdMap.put(CMD_TYPE.BP12, "BP12");
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");
cmdMap.put(CMD_TYPE.BP65, "BP65");
cmdMap.put(CMD_TYPE.AP47, "AP47");
cmdMap.put(CMD_TYPE.BP47, "BP47");
- cmdMap.put(CMD_TYPE.BPCM, "BPCM");
- cmdMap.put(CMD_TYPE.BPMK, "BPMK");
- cmdMap.put(CMD_TYPE.APFX, "APFX");
}
mRuntime = runtime;
}
- private StringBuffer cmdBuf = new StringBuffer();
+ private StringBuffer cmdbuf = new StringBuffer();
/*
输入的字符串,如果有完整命令,返回 命令名
String last_inCompletecmd = "";
String cmd_msgbuf = new String(bytes);
ICLogger.d("bytes.size " + bytes.length);
- //cmdbuf.append(cmd_msgbuf);
- cmdBuf.append(cmd_msgbuf);
- ICLogger.d("cmdbuf.size " + cmdBuf.length() + " " + cmdBuf.toString());
- /*
+// cmdbuf.append(cmd_msgbuf);
+ cmdbuf.append(cmd_msgbuf);
+ ICLogger.d("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());
+ /*
如果不是 #结尾,就认为 接收数据不全,置位。
*/
- if (cmdBuf.toString().endsWith(CMDEND)) {
+ if (cmdbuf.toString().endsWith(CMDEND)) {
iscmdComplete = true;
}
String[] cmdlist = cmd_msgbuf.split(CMDEND);
}
}
- cmdBuf = new StringBuffer().append(last_inCompletecmd);
+ cmdbuf = new StringBuffer().append(last_inCompletecmd);
return ret;
}
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);//通知下面线程状态变化
ICLogger.i("睡眠数据上传完毕!");
mConnection.DeliverCMDMessageToSystem("APSL", cmd);//通知下面线程状态变化
break;
- case BPCM:
- ICLogger.d("收到禁用相机开关BPCM");
- mConnection.DeliverCMDMessageToSystem("APCM", cmd);//通知下面线程状态变化
- handleBPCM(mRuntime, cmd);
- break;
- case BPMK:
- ICLogger.d("收到关闭麦克风的指令BPMK");
- 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 BPTQ: //天气下发
handleBPTQ(mConnection, mRuntime, cmd);
break;
case BPAT://剪断开关设定
handleBPAT(mConnection, mRuntime, cmd);
break;
+
case BPBT://蓝牙扫描设置
handleBPBT(mConnection, mRuntime, cmd);
break;
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("@");
- ContentResolver resolver = mRuntime.getContextProxy().getResolver();
- //闹钟下发,也是要清空闹钟的
- resolver.delete(Uri.parse(FZDAlarmProvider.ALARMS), null, null);
- 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);
- //如果是全部关闭,那么所有的闹钟都会为0
- if ("0".equals(isAllOpen)) {
- isOpen = "0";
- }
- if (TextUtils.isEmpty(alarmTime)) {
- continue;
- }
- //添加到闹钟数据库中
- Alarm alarmItem = new Alarm("ST" + alarmTime.substring(0, 2) + "." + alarmTime.substring(2),
- "W" + weekItem, "CON", "1".equals(isOpen) ? "ON" : "OFF", alarmName);
- ICLogger.d("alarmItem == > " + alarmName);
- //设置闹钟
- //TODO:
- //入库
- ContentValues contentValues = new ContentValues();
- contentValues.put(FZDDatabaseHelper.alarm_name, alarmItem.name);
- contentValues.put(FZDDatabaseHelper.alarm_week, alarmItem.week);
- contentValues.put(FZDDatabaseHelper.alarm_ring, alarmItem.ring);
- contentValues.put(FZDDatabaseHelper.alarm_time, alarmItem.time);
- contentValues.put(FZDDatabaseHelper.alarm_status, alarmItem.status);
- contentValues.put(FZDDatabaseHelper.updateTime, System.currentTimeMillis());
- contentValues.put(FZDDatabaseHelper.createTime, System.currentTimeMillis());
- resolver.insert(Uri.parse(FZDAlarmProvider.ALARMS), contentValues);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
-
- /**
- * 处理麦克风的指令
- *
- * @param mRuntime
- * @param cmd
- */
- private void handleBPMK(Runtime mRuntime, String cmd) {
- ICLogger.d(cmd + " handleBPMK --> " + cmd);
- try {
- //IWBPMK,353456789012345,080835,1#
- String[] split = cmd.split(CMDSPLIT);
- if (split.length == 4) {
- ContentResolver resolver = mRuntime.getContextProxy().getResolver();
- ContentValues values = new ContentValues();
- values.put(FZDDatabaseHelper.sKey, "is_mic_enable");
- //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
- values.put(FZDDatabaseHelper.sValue, split[3].replace(CMDEND, ""));
- resolver.insert(Uri.parse(FZDSettingsProvider.SETTINGS), values);
- } else {
- ICLogger.d("parse cmd error...");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 处理
- */
- private void handleBPCM(Runtime mRuntime, String cmd) {
- //修改数据库即可,
- //1 : 表示设备可以拍照 0:表示设备不可拍照 ,用户想做拍照会有提示禁用。
- ICLogger.d(cmd + " handleBPCM --> " + cmd);
- try {
- //IWBPCM,353456789012345,080835,1#
- String[] split = cmd.split(CMDSPLIT);
- if (split.length == 4) {
- ContentResolver resolver = mRuntime.getContextProxy().getResolver();
- ContentValues values = new ContentValues();
- values.put(FZDDatabaseHelper.sKey, "is_camera_enable");
- //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
- values.put(FZDDatabaseHelper.sValue, split[3].replace(CMDEND, ""));
- resolver.insert(Uri.parse(FZDSettingsProvider.SETTINGS), values);
- } else {
- ICLogger.d("parse cmd error...");
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
public boolean handleCmd(CMD_TYPE type, String cmd, byte[] bytes) {