From: TrillGates Date: Tue, 3 Aug 2021 08:33:56 +0000 (+0800) Subject: refactor codes. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=1469f9a0cbab4b162cfa02a2fbb512b39690a3f1;p=protocol_srv.git refactor codes. --- diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index 841ee1ba..8d956fe6 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -195,8 +195,10 @@ public class protocol_s123 { BPMK,//关闭麦克风 APGJ,//关机前的确定 APFX,//飞行模式开关 + BP75,//闹钟, + BPPH,//拨号功能开关 + APPH, UNKNOWN_CMD, - BP75,//闹钟 } private static HashMap cmdMap; @@ -319,6 +321,8 @@ public class protocol_s123 { 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"); } @@ -581,11 +585,12 @@ public class protocol_s123 { // 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 @@ -1551,28 +1556,28 @@ public class protocol_s123 { //处理 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; @@ -2173,9 +2178,7 @@ public class protocol_s123 { public void handleBPHP() { - ICLogger.i("服务器收到APHP 心率血压血氧 !"); - } public static StringMessage APDE(String id) { @@ -2191,20 +2194,20 @@ public class protocol_s123 { } 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) { @@ -2240,19 +2243,19 @@ public class protocol_s123 { } 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) { @@ -2643,39 +2646,14 @@ public class protocol_s123 { //封装数据 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()); @@ -3395,8 +3373,11 @@ public class protocol_s123 { case BP47://震动设置 handleBP47(mConnection, mRuntime, cmd); break; - - + case BPPH: + //收到服务器拨号功能开关 + ICLogger.d("收到服务器拨号功能开关."); + handleBPPH(mConnection, mRuntime, cmd); + break; case APTM: break; case APCH: @@ -3505,6 +3486,51 @@ public class protocol_s123 { } + /** + * 处理拨号开关,数据入库,进入拨号前要获取一下,是否可以拨号, + * + * @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()); + } + /** * 闹钟数据 * @@ -3602,12 +3628,9 @@ public class protocol_s123 { //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..."); } @@ -3627,12 +3650,7 @@ public class protocol_s123 { //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..."); }