-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":764,"versionName":"2103181125","enabled":true,"outputFile":"ICSer_V764_2103181125_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V764_2103181125_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":765,"versionName":"2103191651","enabled":true,"outputFile":"ICSer_V765_2103191651_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V765_2103191651_release.apk","properties":{}}]
\ No newline at end of file
}
StringBuilder stringBuilder = new StringBuilder();
- if (checkNetwork()) {
- StringMessage msgSent;
- if (Config.discard_cmd_after_retryfailed) {
- //如果可以丢弃数据,则直接查找没发送的数据即可
+ StringMessage msgSent;
+ if (Config.discard_cmd_after_retryfailed) {
+ //如果可以丢弃数据,则直接查找没发送的数据即可
+ msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
+ } else {
+ //如果有盲点续传问题,不丢弃,则先查找丢掉的数据(重试失败的)先进行重传。
+ msgSent = mRuntime.getDbHelper().queryDiscardCMDRecord();
+ if (msgSent == null) {
+ //如果没有丢弃的数据,直接查找未发送的数据进行
msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
- } else {
- //如果有盲点续传问题,不丢弃,则先查找丢掉的数据(重试失败的)先进行重传。
- msgSent = mRuntime.getDbHelper().queryDiscardCMDRecord();
- if (msgSent == null) {
- //如果没有丢弃的数据,直接查找未发送的数据进行
- msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
- }
}
- dumpMessage(msgSent);
+ }
+ dumpMessage(msgSent);
+ if (checkNetwork()) { //网络服务器链接正常 则进行正常操作
if (msgSent != null) {
String cmd = msgSent.isFromCache();
String topic = msgSent.cmd();
} else {
stringBuilder.append("no message!\n");
}
+ str = stringBuilder.toString();
+ ICLogger.i("send cached cmd : \n" + str);
+ }else{ //如果网络服务器未链接,则表示数据不需要传,
+ //但是有些协议要求此数据 需要转变为 盲点续传数据(已经是盲点的跳过)
+ mRuntime.getDbHelper().updateCMDRecordForUD2(0,msgSent); //未发送
}
- str = stringBuilder.toString();
- ICLogger.i("send cached cmd : \n" + str);
+
//ICLogger.i("\n"+queue.size()+" left in Queue!");
} finally {
if (mLock != null && mLock.isLocked())
import com.enqualcomm.support.bean.StheartRate;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.Weather;
+import com.ic.protocols.protocolAPIHelper;
import java.util.ArrayList;
import java.util.Iterator;
return raw_contactID;
}
-
+ public void updateCMDRecordForUD2(int flag,StringMessage msg) {
+ String WhereClause = null;
+ if(msg!=null) {
+ int id = msg.getIndex();
+ String topic = msg.cmd();
+ if (id >= 0 && topic.equals("UD")) {
+ StringMessage UD2 = protocolAPIHelper.genMissedUD2Msg(msg);
+ if (UD2 != null) {
+ WhereClause = new StringBuilder("_id=").append(id).toString();
+ ContentValues flagcontent = new ContentValues();
+ flagcontent.put("FLAG", flag);
+ flagcontent.put("TOPIC", UD2.cmd());
+ flagcontent.put("CMD", UD2.isFromCache());
+ this.cr.update(ICContentProvider.PROTOCOL_CMD_RECORDS_URI, flagcontent, WhereClause, null);
+
+ ICLogger.d(" 更新 UD " + msg.isFromCache() + "\nto UD2 " + UD2.isFromCache());
+ } else {
+ ICLogger.e("genMissedUD2Msg failed, skip gen UD2 msg");
+ }
+ } else {
+ ICLogger.e("not UD or id <0 , skip gen UD2 msg");
+ }
+ }else{
+ ICLogger.e("msg is null , skip gen UD2 msg");
+ }
+ }
public void updateCMDRecord(int id, int flag) {
String WhereClause = null;
if (id >= 0) {
}
return ret;
}
+
+ public static StringMessage genMissedUD2Msg(StringMessage msg){
+ if (is_protocol_not_Initialled()) return null;
+ StringMessage ret = null;
+ switch (Config.protocol_no) {
+ case Config.PROTOCOL_JIAI:
+ ret = null;
+ break;
+ case Config.PROTOCOL_BEEHOME:
+ ret = null;
+ break;
+ case Config.PROTOCOL_IC:
+ ret = null;
+ break;
+ case Config.PROTOCOL_FZD:
+ ret = protocolfzd_handler.genUD2FromUD(msg);
+ break;
+ case Config.PROTOCOL_MQTT:
+ ret = null;
+ break;
+ }
+ return ret;
+ }
+
}
private static final String CMDHEADERSPLIT = "*";
private static final String CMDSPLIT = ",";
private static final boolean doEncryption = Util.getSystemProperties("persist.sys.encrypt_fzd", "true").equals("true");
- public static final String defaultServerIP = "fzd.xcloudtech.com";
+ public static final String defaultServerIP = "api.xcloudtech.com";
public static final int defaultServerPort = 9000;
private final SharedPreferences sharedPreferences;
return "";
}
+ //[6fb043e7f6bb5f107319e3f3822d7124IC*860316012050026*0126*UD,210318,163421,A,33.0227161,N,114.0202817,E,2.98,0.0,0.0,5,039,095,35,00,0100018,5,1,460,00,18899,190839372,44,18899,81,43,18899,56,39,18899,458,38,18899,497,33,5,AP1,fc:d7:33:c8:77:d2,-57,AP2,1c:60:de:28:03:b4,-65,AP3,a4:2b:8c:89:62:91,-68,AP4,cc:2d:21:e2:46:a8,-68,AP5,be:dd:c2:47:04:2b,-70]
+ public StringMessage genUD2FromUD(StringMessage ud){
+ String cmd,data,tmp;
+ tmp=ud.isFromCache();
+ if(isCmdStr(tmp).equals("UD")) {
+ cmd = ud.cmd().equals("UD") ? "UD2" : ud.cmd();
+ tmp=ud.isFromCache().replace("]","");
+ int index=tmp.indexOf("UD,");
+ data=tmp.substring(index+3);
+ return genFZDCMD("UD2",data);
+ }else{
+ return null;
+ }
+ }
/*
返回true 表示 cmd 全部解析成功
返回false表示 cmd至少有一条解析失败,失败的数据归入buffer,下一次识别接着使用
case PRACTICE:
mConnection.DeliverCMDMessageToSystem("PRACTICE", cmd);//通知下面线程状态变化,用Deliver发送的话必须发,表示服务器响应了
break;
+ case UD:
+ mConnection.DeliverCMDMessageToSystem("UD", cmd);//通知下面线程状态变化,用Deliver发送的话必须发,表示服务器响应了
+ break;
+ case UD2:
+ mConnection.DeliverCMDMessageToSystem("UD2", cmd);//通知下面线程状态变化,用Deliver发送的话必须发,表示服务器响应了
+ break;
case PING:
handlePing(mRuntime, data);
ICLogger.i("服务器返回Ping绑定信息");
-#Thu Mar 18 11:25:58 CST 2021
-VERSION_CODE=764
+#Fri Mar 19 16:51:35 CST 2021
+VERSION_CODE=765