From d12bcd5acd046d5021072587b4e95c020948e0be Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期一, 23 三月 2020 10:57:20 +0800 Subject: [PATCH] 平台消息基类取电话号码,删除子类取电话号码的操作;训练模式只发送注册鉴权位置消息,其他不发送;Netty TCP增加重置TCP连接接口;收到单片机sn更新的时候重置tcp --- app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 1 app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEventCenter.java | 4 app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt | 1 app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java | 20 +++--- app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java | 3 app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java | 48 ++++++++++++---- app/src/main/java/safeluck/drive/evaluation/app.java | 1 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt | 8 ++ app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 7 +- app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java | 1 app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java | 4 + app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 21 +++---- app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java | 13 ++++ 14 files changed, 87 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt index 1c921d3..8c0ce4a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt @@ -12,6 +12,9 @@ import org.json.JSONObject import safeluck.drive.evaluation.DB.Constant import safeluck.drive.evaluation.DB.WorkRoomDataBase +import safeluck.drive.evaluation.bean.ExamPlatformData +import safeluck.drive.evaluation.im.IMSClientBootstrap +import safeluck.drive.evaluation.platformMessage.PlatFormConstant class RTKConfigUpdateWorker(context:Context, workerParams: WorkerParameters) :Worker(context, workerParams){ @@ -21,7 +24,7 @@ override fun doWork(): Result { var data = inputData.getString(Constant.RTK_CONFIG_UPDATE_JSON) - Log.i(TAG,"鏇存柊RTK_config imei phone sn="+data) + MyLog.i(PlatFormConstant.RTK,"鏇存柊RTK_config imei phone sn="+data) var imei:String="" var phone:String="" var sn:String="" @@ -29,6 +32,7 @@ var jsonObject: JSONObject? = null jsonObject = JSONObject(data) sn = jsonObject.getString(Constant.RTK_CONFIG_SN) + ExamPlatformData.getInstance().setPhone(sn); Log.i(TAG,"sn="+sn) imei = sn.substring(1) Log.i(TAG,"imei="+imei) @@ -39,6 +43,8 @@ */ phone = sn Log.i(TAG,"phone="+phone) + MyLog.i(PlatFormConstant.TAG,"閲嶇疆TCP杩炴帴") + IMSClientBootstrap.getInstance().resetConnect(); } var rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao.also { it.update(sn, imei, phone) diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 71fbd34..6da2ff2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -139,9 +139,10 @@ public void onChanged(RTKConfig rtkConfig) { MyLog.i(TAG, "RTKConfig Changed: " + (rtkConfig != null ? rtkConfig.toString() : "null")); - mRTKConfig = rtkConfig; + if (rtkConfig != null) - ExamPlatformData.getInstance().setPhone(rtkConfig.getSn()); + mRTKConfig = rtkConfig; + synchronized (MainActivity.this){ // if (onlySendOnceRTKConfig){ // MyLog.i(TAG,"杩涘叆 synchronized (MainActivity.this)"); @@ -291,7 +292,6 @@ JKMessage0100 jkRegisterMessage = new JKMessage0100(); if (mRTKConfig!=null){ - jkRegisterMessage.phone = ExamPlatformData.getInstance().getPhone(); jkRegisterMessage.proviceid = mRTKConfig.getProvince(); jkRegisterMessage.cityid = mRTKConfig.getCity(); jkRegisterMessage.imei = mRTKConfig.getImei(); @@ -307,7 +307,6 @@ }else{ MyLog.i(PlatFormConstant.TAG,"瀵嗙爜瀛樺湪锛屽凡娉ㄥ唽杩囷紝鐩存帴鍙戦壌鏉冩秷鎭�"); JKMessage0101 jkMessage0101 = new JKMessage0101(); - jkMessage0101.phone = ExamPlatformData.getInstance().getPhone(); String des = hexPwd; long time = System.currentTimeMillis()/1000; int unsignedInt = Utils.parseUnsignedInt(String.valueOf(time),10); diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 538d0c4..bfb131c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -327,7 +327,6 @@ CEventCenter.dispatchEvent(Constant.BIND_RTK_SPEED_TOPIC,cmd,0,speed); utc = utc.replace(".",""); JKMessage0206 jkMessage0206 = new JKMessage0206(); - jkMessage0206.phone = ExamPlatformData.getInstance().getPhone(); jkMessage0206.alert = 0; jkMessage0206.status = 0; jkMessage0206.jd = longitude; diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index 14d9593..602ef14 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -21,6 +21,7 @@ import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker; import safeluck.drive.evaluation.app; +import safeluck.drive.evaluation.platformMessage.PlatFormConstant; import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; import safeluck.drive.evaluation.viewmodels.MainViewModel; diff --git a/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEventCenter.java b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEventCenter.java index f87b93c..0776ea7 100644 --- a/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEventCenter.java +++ b/app/src/main/java/safeluck/drive/evaluation/cEventCenter/CEventCenter.java @@ -172,8 +172,8 @@ ICEventListener listener = null; LinkedList<ICEventListener> listeners = null; synchronized (LISTENER_LOCK){ - Log.d(TAG, "dispatchEvent | topic="+topic+"\tmsgCode="+event.getMsgCode()+"\tresultCode="+event.getResultCode() - +"\tobj="+event.getObj()); +// Log.d(TAG, "dispatchEvent | topic="+topic+"\tmsgCode="+event.getMsgCode()+"\tresultCode="+event.getResultCode() +// +"\tobj="+event.getObj()); Object obj = LISTENER_MAP.get(topic); if (obj == null){ return; diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index 4527745..79ede48 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -130,7 +130,6 @@ String icStr = jsSpeed.getString("serialno"); if (result == 0) { JKMessage0201 jkMessage0201 = new JKMessage0201(); - jkMessage0201.phone = ExamPlatformData.getInstance().getPhone(); if (exam_type==Constant.Chang_di){ jkMessage0201.currentExam = 0; }else{ @@ -498,7 +497,6 @@ currTotalScore = 100; //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯 final JKMessage0202 jkMessage0202 = new JKMessage0202(); - jkMessage0202.phone = ExamPlatformData.getInstance().getPhone(); jkMessage0202.timeBCD = new Date(); jkMessage0202.ID = ExamPlatformData.getInstance().getID(); @@ -595,7 +593,14 @@ private void stopExam() { MyLog.i(TAG,"缁撴潫鑰冭瘯"); - + //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 + JKMessage0204 jkMessage0204 = new JKMessage0204(); + jkMessage0204.timeBCD = new Date(); + jkMessage0204.score = currTotalScore; + jkMessage0204.stop = JKMessage0204.SUCC_STOP; + jkMessage0204.ID = ExamPlatformData.getInstance().getID(); + jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); + MessageProcessor.getInstance().sendMessage(jkMessage0204); //璁剧疆妯″紡涓篘ONE 0 ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE); //鎭㈠鍒濆鏁版嵁 @@ -612,15 +617,7 @@ ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯"); examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM); sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0 - //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 - JKMessage0204 jkMessage0204 = new JKMessage0204(); - jkMessage0204.phone = ExamPlatformData.getInstance().getPhone(); - jkMessage0204.timeBCD = new Date(); - jkMessage0204.score = 10; - jkMessage0204.stop = JKMessage0204.SUCC_STOP; - jkMessage0204.ID = ExamPlatformData.getInstance().getID(); - jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); - MessageProcessor.getInstance().sendMessage(jkMessage0204); + } private ICEventListener icEventListener = new ICEventListener() { diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java index a3c5826..6bc40a8 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java @@ -226,7 +226,6 @@ break; case R.id.btn_start_exam: JKMessage0202 jkMessage0202 = new JKMessage0202(); - jkMessage0202.phone = "0314200100000004"; jkMessage0202.timeBCD = new Date(); jkMessage0202.curr_exam = 1; jkMessage0202.ID = "123456789"; @@ -235,7 +234,6 @@ break; case R.id.btn_fail: JKMessage0203 jkMessage0203 = new JKMessage0203(); - jkMessage0203.phone = "0314200100000004"; jkMessage0203.timeBCD = "200226135444"; jkMessage0203.fail_item_id = 4; jkMessage0203.fail_score = 10; diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java index 2d8e244..c261719 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TrainFragment.java @@ -522,7 +522,6 @@ //TODO 鍙戦�丣KMessage0202 缁欏钩鍙帮紝寮�濮嬭�冭瘯 final JKMessage0202 jkMessage0202 = new JKMessage0202(); - jkMessage0202.phone = ExamPlatformData.getInstance().getPhone(); jkMessage0202.timeBCD = new Date(); jkMessage0202.ID = ExamPlatformData.getInstance().getID(); @@ -621,6 +620,15 @@ private void stopExam() { MyLog.i(TAG,"缁撴潫璁粌"); + + //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 + JKMessage0204 jkMessage0204 = new JKMessage0204(); + jkMessage0204.timeBCD = new Date(); + jkMessage0204.score = currTotalScore; + jkMessage0204.stop = JKMessage0204.SUCC_STOP; + jkMessage0204.ID = ExamPlatformData.getInstance().getID(); + jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); + MessageProcessor.getInstance().sendMessage(jkMessage0204); //璁剧疆妯″紡涓篘ONE 0 ExamPlatformData.getInstance().setTrainingMode(ExamPlatformData.MODE_NONE); @@ -637,15 +645,7 @@ ExamPlatformData.getInstance().getTTS().speak("缁撴潫璁粌"); examStatusViewModel.updateStartExam(Constant.NONE_BEEN_START_EXAM); sendExamJson(0,0);//缁撴潫鑰冭瘯 exstart=0 - //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 - JKMessage0204 jkMessage0204 = new JKMessage0204(); - jkMessage0204.phone = ExamPlatformData.getInstance().getPhone(); - jkMessage0204.timeBCD = new Date(); - jkMessage0204.score = 10; - jkMessage0204.stop = JKMessage0204.SUCC_STOP; - jkMessage0204.ID = ExamPlatformData.getInstance().getID(); - jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); - MessageProcessor.getInstance().sendMessage(jkMessage0204); + } private ICEventListener icEventListener = new ICEventListener() { diff --git a/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java b/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java index 181f385..1142591 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java @@ -124,4 +124,17 @@ } } + + /** + * 閲嶇疆TCP杩炴帴 + * 鍘熸潵宸茬粡init杩囷紝浼犺緭杩噃ost锛屾湰鏂规硶鐭ヨ瘑閲嶇疆杩炴帴 + */ + public void resetConnect() { + if (isActive){ + if (imsClient != null){ + imsClient.resetConnect(false); + } + } + + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java index 0e230c9..3255c46 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java @@ -94,7 +94,6 @@ @Override public byte[] getHearbeatMsg() { JKMessage0002 jkMessage0002 = new JKMessage0002(); - jkMessage0002.phone = ExamPlatformData.getInstance().getPhone(); return messageEscaper.escape(jkMessage0002.toBytes()); } diff --git a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java index b37cd0d..0a3bf27 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java @@ -75,7 +75,6 @@ String des = ((JKMessage8100) jk2019MessageBase).des; SPUtils.put(app.getAppContext(),SPUtils.DES_HEX_PWD,des); JKMessage0101 jkMessage0101 = new JKMessage0101(); -// jkMessage0101.des =((JKMessage8100) jk2019MessageBase).des; long time =System.currentTimeMillis()/1000; int unsignedInt = Utils.parseUnsignedInt(String.valueOf(time),10); MyLog.i(String.format("鎬荤鏁�(long)=%d,瑁呮崲鎴恥nsigned int= %d",time,unsignedInt)); @@ -120,26 +119,34 @@ if ( ExamPlatformData.getInstance().getExamplatformStatus() == ExamPlatformData.DEV_LOGIN){ - if (IMSClientBootstrap.getInstance().isActive()){ - IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes())); - }else{ - Log.e(TAG, "run: 鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp"); + byte[] msgidbytes= ArrayUtils.subArray(msg.toBytes(),2,2); + String msgid = BytesUtils.bytesToHexString(msgidbytes); + if (canSend(msgid)){ + if (IMSClientBootstrap.getInstance().isActive()){ + IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes())); + }else{ + Log.e(TAG, "run: 鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp"); + } } + }else{ // JK2019MessageBase jk2019MessageBase = MessageManager.get(msg.toString()); byte[] msgidbytes= ArrayUtils.subArray(msg.toBytes(),2,2); String msgid = BytesUtils.bytesToHexString(msgidbytes); Log.i(TAG, "run: msgid="+msgid); - if ((msgid.equalsIgnoreCase("0100")) || (msgid.equalsIgnoreCase("0101"))){ - MyLog.i(PlatFormConstant.TAG,"娉ㄥ唽/閴存潈娑堟伅鐩存帴鍙戦�侊紝涓嶅彂閫佹槸鍚︾櫥褰曟垚鍔�"); - if (IMSClientBootstrap.getInstance().isActive()){ - IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes())); + if (canSend(msgid)){ + if ((msgid.equalsIgnoreCase("0100")) || (msgid.equalsIgnoreCase("0101"))){ + MyLog.i(PlatFormConstant.TAG,"娉ㄥ唽/閴存潈娑堟伅鐩存帴鍙戦��"); + if (IMSClientBootstrap.getInstance().isActive()){ + IMSClientBootstrap.getInstance().sendMessage(messageEscaper.escape(msg.toBytes())); + }else{ + MyLog.i(PlatFormConstant.TAG, "鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp"); + } }else{ - MyLog.i(PlatFormConstant.TAG, "鍙戦�佹秷鎭け璐ワ紝鏈垵濮嬪寲杩炴帴NettyTcp"); + MyLog.i(PlatFormConstant.TAG,"鐧诲綍鏈垚鍔燂紝涓嶈兘鍙戦�佹秷鎭�="+msgid); } - }else{ - MyLog.i(PlatFormConstant.TAG,"鐧诲綍鏈垚鍔燂紝涓嶈兘鍙戦�佹秷鎭�="+msgid); } + } @@ -153,4 +160,21 @@ IMSClientBootstrap.getInstance().addHeartbeat(seconds); } } + + private boolean canSend(String msgId){ + if (ExamPlatformData.getInstance().getTrainingMode()==ExamPlatformData.TRAINING_MODE){ + //璁粌妯″紡涓� 鍙湁鍑犳潯鍙互鍙戦�� + switch (msgId){ + case "0206": + case "0100": + case "0101": + return true; + } + + }else{ + //鑰冭瘯妯″紡涓嬪叏閮ㄩ兘鍙互鍙戦�� + return true; + } + return false; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java index b8723e1..67ea010 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java @@ -14,6 +14,7 @@ import com.safeluck.aykj.utils.BitState; import com.safeluck.aykj.utils.BytesUtils; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.platformMessage.decoder.JWD; import safeluck.drive.evaluation.platformMessage.decoder.JWDCoder; import safeluck.drive.evaluation.platformMessage.decoder.Phone; @@ -99,7 +100,7 @@ public BitState props = new BitState((short) 0); @Order(5) @Phone - public String phone="0314200100000004"; + public String phone= ExamPlatformData.getInstance().getPhone(); @Order(6) @Int16 public int messageNo; diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java index d08872f..eb46ffe 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/PlatFormConstant.java @@ -1,5 +1,7 @@ package safeluck.drive.evaluation.platformMessage; +import org.jetbrains.annotations.Nullable; + import java.util.HashMap; public class PlatFormConstant { @@ -8,4 +10,6 @@ public static final int SUCCESS = 0; public static final short STU_INFO_SUCC = 1; + @Nullable + public static final String RTK = "RTK_Config"; } diff --git a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt index 935c91c..048ecc2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt +++ b/app/src/main/java/safeluck/drive/evaluation/worker/TTSWorker.kt @@ -26,7 +26,6 @@ var gson:Gson =Gson() override fun doWork(): Result { val jkMessage0203 = JKMessage0203() - jkMessage0203.phone = ExamPlatformData.getInstance().phone jkMessage0203.ID = ExamPlatformData.getInstance().id jkMessage0203.exam_id = ExamPlatformData.getInstance().exam_id var ttsInput = inputData.getString(Constant.TTS); -- Gitblit v1.8.0