BPMK,//关闭麦克风
APGJ,//关机前的确定
APFX,//飞行模式开关
+ BP75,//闹钟,
+ BPPH,//拨号功能开关
+ APPH,
UNKNOWN_CMD,
- BP75,//闹钟
}
private static HashMap<CMD_TYPE, String> cmdMap;
cmdMap.put(CMD_TYPE.BPCM, "BPCM");
cmdMap.put(CMD_TYPE.BPMK, "BPMK");
cmdMap.put(CMD_TYPE.APFX, "APFX");
+ cmdMap.put(CMD_TYPE.BPPH, "BPPH");
+ cmdMap.put(CMD_TYPE.APPH, "APPH");
}
// 460,0,9520,3671,
// Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97#
// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#
- return genStringMessage(cmdMap.get(CMD_TYPE.AP01), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())
- .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d", abs(ds.getSignalStrength())))
- .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")
- .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)
- .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP01),
+ new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())
+ .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d", abs(ds.getSignalStrength())))
+ .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")
+ .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)
+ .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());
}
//处理 定位 BP01
//处理 BP28 语音消息
public void handleBP28(Connection connection, String cmd, Runtime runtime, byte[] bytes) {
//log("handleBP28 msg"+cmd);
-/**
- * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
- * 说明:
- * IW:标识符
- * BP28 : 命令字符
- * D3590D54:UNICODE编码,发送者名称
- * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号
- * 6:语音包分包总数
- * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同
- * 1024 :语音包长度
- * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数
- * 语音包上传规则:
- * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。
- * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。
- * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包
- * 设备响应: IWAP28,D3590D54,XXXX,6,1,1#
- * D3590D54:UNICODE编码,发送者名称
- * XXXX: 附加信息,原样返回
- * 6:语音包分包总数
- * 1:当前设备收到的是第几个包
- * 1:表示设备接受数据成功,0表示设备接受数据失败
- */
+ /**
+ * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
+ * 说明:
+ * IW:标识符
+ * BP28 : 命令字符
+ * D3590D54:UNICODE编码,发送者名称
+ * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号
+ * 6:语音包分包总数
+ * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同
+ * 1024 :语音包长度
+ * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数
+ * 语音包上传规则:
+ * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。
+ * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。
+ * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包
+ * 设备响应: IWAP28,D3590D54,XXXX,6,1,1#
+ * D3590D54:UNICODE编码,发送者名称
+ * XXXX: 附加信息,原样返回
+ * 6:语音包分包总数
+ * 1:当前设备收到的是第几个包
+ * 1:表示设备接受数据成功,0表示设备接受数据失败
+ */
String Name;
String appendIndex;
int packetCount;
public void handleBPHP() {
-
ICLogger.i("服务器收到APHP 心率血压血氧 !");
-
}
public static StringMessage APDE(String id) {
}
public void handleBPDE(Connection connection, String cmd, Runtime runtime) {
-/***
- * 示例:
- * IWBPDE,867400020316612,853676,0
- * 说明:
- * IW:标识符
- * BPDE: 命令字符
- * 353456789012345:设备IMEI或者ID
- * 080835 :指令流水号
- * 0:进入禁止区域 1离开禁止区域
- * #:结尾标识符
- * 设备响应: IWAPDE,080835#
- * 080835:指令流水号
- * 说明: 本消息适用所有终端
- */
+ /***
+ * 示例:
+ * IWBPDE,867400020316612,853676,0
+ * 说明:
+ * IW:标识符
+ * BPDE: 命令字符
+ * 353456789012345:设备IMEI或者ID
+ * 080835 :指令流水号
+ * 0:进入禁止区域 1离开禁止区域
+ * #:结尾标识符
+ * 设备响应: IWAPDE,080835#
+ * 080835:指令流水号
+ * 说明: 本消息适用所有终端
+ */
String[] list = cmd.split(CMDSPLIT);
if (list.length == 4) {
}
public void handleBPDG(Connection connection, String cmd, Runtime runtime) {
-/**
- * 示例:
- * IWBPDG,353456789012345,1,30.0,37.3 #
- * 说明:IWBPDG,867400020316612,502102,1,33,44
- * IW:标识符
- * BPDG: 命令字符
- * 353456789012345:设备IMEI或者ID
- * 080835 :指令流水号
- * 1:开关 1开, 0 关
- * 30.0: 低温阀值
- * 37.3: 高温阀值
- * #:结尾标识符
- * */
+ /**
+ * 示例:
+ * IWBPDG,353456789012345,1,30.0,37.3 #
+ * 说明:IWBPDG,867400020316612,502102,1,33,44
+ * IW:标识符
+ * BPDG: 命令字符
+ * 353456789012345:设备IMEI或者ID
+ * 080835 :指令流水号
+ * 1:开关 1开, 0 关
+ * 30.0: 低温阀值
+ * 37.3: 高温阀值
+ * #:结尾标识符
+ * */
String[] list = cmd.split(CMDSPLIT);
if (list.length == 6) {
//封装数据
weatherInfo.add(itemFirst);
if (i == 0) {
-
//插入天气类型
- ContentValues wtCodeValues = new ContentValues();
- wtCodeValues.put(ICDatabaseHelper.sKey, "weather_type");
- wtCodeValues.put(ICDatabaseHelper.sValue, weather_id);
- mRuntime.getContextProxy().getResolver().insert(
- Uri.parse(ICGlobalSettingsProvider.SETTINGS),
- wtCodeValues
- );
+ updateSettingValue("weather_type", weather_id);
//插入天气当前温度
- ContentValues tempValues = new ContentValues();
- tempValues.put(ICDatabaseHelper.sKey, "weather_temp");
- tempValues.put(ICDatabaseHelper.sValue, temp_current);
- mRuntime.getContextProxy().getResolver().insert(
- Uri.parse(ICGlobalSettingsProvider.SETTINGS),
- tempValues
- );
+ updateSettingValue("weather_temp", temp_current);
//城市
- ContentValues locationValues = new ContentValues();
- locationValues.put(ICDatabaseHelper.sKey, "weather_location");
- locationValues.put(ICDatabaseHelper.sValue, cityName);
- mRuntime.getContextProxy().getResolver().insert(
- Uri.parse(ICGlobalSettingsProvider.SETTINGS),
- locationValues
- );
+ updateSettingValue("weather_location", cityName);
//天气描述
- ContentValues descriptionValues = new ContentValues();
- descriptionValues.put(ICDatabaseHelper.sKey, "weather_desc");
- descriptionValues.put(ICDatabaseHelper.sValue, weather_name);
- mRuntime.getContextProxy().getResolver().insert(
- Uri.parse(ICGlobalSettingsProvider.SETTINGS),
- descriptionValues
- );
+ updateSettingValue("weather_desc", weather_name);
}
}
ICLogger.i(cityName + " \n" + sb.toString());
case BP47://震动设置
handleBP47(mConnection, mRuntime, cmd);
break;
-
-
+ case BPPH:
+ //收到服务器拨号功能开关
+ ICLogger.d("收到服务器拨号功能开关.");
+ handleBPPH(mConnection, mRuntime, cmd);
+ break;
case APTM:
break;
case APCH:
}
+ /**
+ * 处理拨号开关,数据入库,进入拨号前要获取一下,是否可以拨号,
+ *
+ * @param mConnection
+ * @param mRuntime
+ * @param cmd IWBPPH,353456789012345,080835,1#
+ */
+ private void handleBPPH(Connection mConnection, Runtime mRuntime, String cmd) {
+ //解析数据
+ String[] split = cmd.split(CMDSPLIT);
+ if (split.length == 4) {
+ try {
+ String id = split[2];
+ String value = split[3];
+ StringMessage apph = APPH(id);
+ mConnection.send(apph);
+ //更新数据库
+
+ //TODO:
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ ICLogger.d("handleBPPH error...");
+ }
+ }
+
+ private void updateSettingValue(String key, String value) {
+ ContentResolver resolver = mRuntime.getContextProxy().getResolver();
+ ContentValues values = new ContentValues();
+ values.put(ICDatabaseHelper.sKey, key);
+ //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
+ values.put(ICDatabaseHelper.sValue, value);
+ resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
+ }
+
+ public static StringMessage APPH(String id) {
+ //设备响应: IWAPS4,080835#
+ //080835:指令流水号
+ return genStringMessage(cmdMap.get(CMD_TYPE.APPH),
+ new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APPH))
+ .append(CMDSPLIT).append(id)
+ .append(CMDEND).toString());
+ }
+
/**
* 闹钟数据
*
//IWBPMK,353456789012345,080835,1#
String[] split = cmd.split(CMDSPLIT);
if (split.length == 4) {
- ContentResolver resolver = mRuntime.getContextProxy().getResolver();
- ContentValues values = new ContentValues();
- values.put(ICDatabaseHelper.sKey, "is_mic_enable");
- //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
- values.put(ICDatabaseHelper.sValue, split[3].replace(CMDEND, ""));
- resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
+ updateSettingValue("is_mic_enable", split[3].replace(CMDEND, ""));
+ //返回消息
+ //TODO:
} else {
ICLogger.d("parse cmd error...");
}
//IWBPCM,353456789012345,080835,1#
String[] split = cmd.split(CMDSPLIT);
if (split.length == 4) {
- ContentResolver resolver = mRuntime.getContextProxy().getResolver();
- ContentValues values = new ContentValues();
- values.put(ICDatabaseHelper.sKey, "is_camera_enable");
- //把值保存到数据库中,相机会就监听数据库值的变化,做出响应
- values.put(ICDatabaseHelper.sValue, split[3].replace(CMDEND, ""));
- resolver.insert(Uri.parse(ICGlobalSettingsProvider.SETTINGS), values);
+ updateSettingValue("is_camera_enable", split[3].replace(CMDEND, ""));
} else {
ICLogger.d("parse cmd error...");
}