From c3e6e125ebd8cd35d9265ef88d5f8c357393e1c1 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期五, 21 二月 2020 17:47:18 +0800 Subject: [PATCH] 1.修改Netty TCP链接库,连接状态回调通知app;修改RTKConfig界面 --- app/src/main/java/safeluck/drive/evaluation/platformMessage/AttachInfo.java | 2 app/src/main/java/safeluck/drive/evaluation/app.java | 66 +++++++++++++++++++++++++++++++-- app/src/main/res/layout/layout_rtk_setting.xml | 1 im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java | 4 +- im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java | 2 + app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 35 +++++++++++++++-- app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java | 5 +- app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java | 5 ++ 8 files changed, 105 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index b026cf9..370b201 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -22,16 +22,19 @@ import com.anyun.exam.lib.MyLog; import com.anyun.exam.lib.crash.CrashHandler; import com.anyun.im_lib.ExecutorServiceFactory; +import com.anyun.im_lib.listener.IMSConnectStatusCallback; import com.facebook.stetho.Stetho; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.safeluck.aykj.utils.BytesUtils; import org.json.JSONException; import org.json.JSONObject; +import java.util.Date; import java.util.Random; import safeluck.drive.evaluation.DB.WorkRoomDataBase; @@ -45,7 +48,14 @@ import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; import safeluck.drive.evaluation.cEventCenter.CEvent; import safeluck.drive.evaluation.cEventCenter.CEventCenter; +import safeluck.drive.evaluation.im.IMSClientBootstrap; +import safeluck.drive.evaluation.im.IMSConnectStatusListener; +import safeluck.drive.evaluation.im.MessageProcessor; +import safeluck.drive.evaluation.platformMessage.JKMessage0100; +import safeluck.drive.evaluation.platformMessage.JKMessage0101; +import safeluck.drive.evaluation.platformMessage.JKMessage0203; import safeluck.drive.evaluation.util.FileUtil; +import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.util.SystemUtil; /** @@ -54,7 +64,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -public class app extends Application implements IAYExamListener { +public class app extends Application implements IAYExamListener , IMSConnectStatusCallback { private static final String TAG = "app"; private Gson gson; @@ -102,9 +112,12 @@ } }).start(); - //TODO 杩涜tcp杩炴帴 + // 杩涜tcp杩炴帴 + String userId = "100002"; + String token = "token_" + userId; + String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]"; + IMSClientBootstrap.getInstance().init(userId,token,hosts,1,this); - //TODO 鍒ゆ柇SPUtils 鏄惁淇濆瓨鏈塪es瀵嗙爜锛涘鏋滄病鏈夊垯杩涜娉ㄥ唽JKMessage0100锛屽鏋滄湁瀵嗙爜鍒欒繘琛岄壌鏉僇KMessage0101 } } @@ -128,7 +141,7 @@ @Override public void callBackMsg(final int cmd, String json) { - MyLog.d(TAG, String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json)); +// MyLog.d(TAG, String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json)); switch (cmd) { case Constant.NDK_START: sendVechileInfo(); @@ -158,6 +171,15 @@ case Constant.JUDGE_INFO: if(!TextUtils.isEmpty(json)){ + JKMessage0203 jkMessage0203 = new JKMessage0203(); + jkMessage0203.phone = "0314200100000004"; + jkMessage0203.timeBCD = new Date(); + jkMessage0203.fail_item_id = 4; + jkMessage0203.fail_score = 10; + jkMessage0203.fail_reason = "鍙戝姩鏈哄惎鍔ㄥ悗锛屼笉鍙婃椂鏉惧紑鍚姩寮�鍏�"; + jkMessage0203.ID = "123456789"; + jkMessage0203.exam_id = 123456; + MessageProcessor.getInstance().sendMessage(jkMessage0203); JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray(); for (int i = 0; i < jsonArray.size(); i++) { JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); @@ -272,4 +294,40 @@ }).start(); } + + @Override + public void onConnecting() { + + } + + @Override + public void onConnected() { + MyLog.i(TAG,"TCP杩炴帴鎴愬姛"); + //TODO 鍒ゆ柇SPUtils 鏄惁淇濆瓨鏈塪es瀵嗙爜锛涘鏋滄病鏈夊垯杩涜娉ㄥ唽JKMessage0100锛屽鏋滄湁瀵嗙爜鍒欒繘琛岄壌鏉僇KMessage0101 + String hexPwd = (String) SPUtils.get(this,SPUtils.DES_HEX_PWD,""); + if (TextUtils.isEmpty(hexPwd)){ + + JKMessage0100 jkRegisterMessage = new JKMessage0100(); + jkRegisterMessage.proviceid = 23; + jkRegisterMessage.cityid = 1; + jkRegisterMessage.imei = "460123874561"; + jkRegisterMessage.model = "123"; + jkRegisterMessage.sn = "0314200100000004"; + + Log.i(TAG, "onClick: msg len "+jkRegisterMessage.getMessageLen()+" "+ jkRegisterMessage.props.value); + byte[] str = jkRegisterMessage.toBytes(); + MessageProcessor.getInstance().sendMessage(jkRegisterMessage); + Log.i(TAG, "onClick: "+ BytesUtils.bytesToHexString(str)+" ============"); + }else{ + JKMessage0101 jkMessage0101 = new JKMessage0101(); + jkMessage0101.des =hexPwd; + jkMessage0101.timestamp = (int) System.currentTimeMillis(); + MessageProcessor.getInstance().sendMessage(jkMessage0101); + } + } + + @Override + public void onConnectFailed() { + MyLog.i(TAG,"TCP杩炴帴澶辫触"); + } } 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 82a703a..4ebbd28 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java @@ -17,6 +17,7 @@ import androidx.lifecycle.Observer; import com.anyun.exam.lib.util.Speaker; +import com.anyun.im_lib.listener.IMSConnectStatusCallback; import com.anyun.im_lib.util.ByteUtil; import com.google.android.material.textfield.TextInputEditText; import com.safeluck.aykj.utils.BytesUtils; @@ -137,7 +138,22 @@ String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]"; // String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]"; - IMSClientBootstrap.getInstance().init(userId,token,hosts,1); + IMSClientBootstrap.getInstance().init(userId, token, hosts, 1, new IMSConnectStatusCallback() { + @Override + public void onConnecting() { + + } + + @Override + public void onConnected() { + + } + + @Override + public void onConnectFailed() { + + } + }); break; case R.id.btn_send: // if (connectThread != null){ @@ -243,12 +259,21 @@ "{\"utc\":\"20070101062157.00\",\"sat_num\":0,\"qf\":0,\"latitude\":0.0,\"longitude\":0.0,\"altitude\":-6378154.162,\"speed\":0.0}"; jkMessage0206.length = jkMessage0206.json.length(); AttachInfo attachInfo = new AttachInfo(); - attachInfo.attach_message_id = 0x40; - attachInfo.attach_message_length = 18; - attachInfo.attach_data="12345678901"; + attachInfo.attach_message_id = Integer.parseInt(port.getText().toString().trim()); + attachInfo.attach_message_length = 4; + Log.i(TAG, "attachInfo.attach_message_id ="+attachInfo.attach_message_id ); + if (attachInfo.attach_message_id == 0x41){ + Log.i(TAG, "onClick: 41"); + attachInfo.attach_data="00000000"; + }else{ + + //18涓瓧鑺� ascii + attachInfo.attach_data="303030303030303030303030303030303030"; + } + jkMessage0206.attachInfo = attachInfo; Log.i(TAG, "浣嶇疆涓婃姤="+jkMessage0206.toString()); - + MessageProcessor.getInstance().sendMessage(jkMessage0206); break; case R.id.btn_stop_exam: JKMessage0204 jkMessage0204 = new JKMessage0204(); 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 a508360..a09fd98 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSClientBootstrap.java @@ -3,6 +3,7 @@ import android.util.Log; import com.anyun.im_lib.interf.IMSClientInteface; +import com.anyun.im_lib.listener.IMSConnectStatusCallback; import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonObject; @@ -47,7 +48,7 @@ * @param hosts * @param appStatus */ - public synchronized void init(String userId,String token,String hosts,int appStatus){ + public synchronized void init(String userId, String token, String hosts, int appStatus, IMSConnectStatusCallback imsConnectStatusListener){ if (!isActive){ Vector<String> serverUrlList = convertHosts(hosts); if (serverUrlList == null || serverUrlList.size() ==0){ @@ -62,7 +63,7 @@ //鍒濆鍖朓MSClientInteface imsClient = IMSClientFactory.getIMSClient(); updateAppStatus(appStatus); - imsClient.init(serverUrlList,new IMSEventListener(userId,token),new IMSConnectStatusListener()); + imsClient.init(serverUrlList,new IMSEventListener(userId,token),imsConnectStatusListener); } } diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/AttachInfo.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/AttachInfo.java index ef0c3f5..67ea888 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/AttachInfo.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/AttachInfo.java @@ -14,7 +14,7 @@ @Int8 public int attach_message_length; @Order(3) - @Length(lengthField="attach_message_length") + @Length(lengthField = "attach_message_length") @Hex public String attach_data; } diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java index 8d8154b..a56e6ef 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java @@ -46,8 +46,11 @@ @Order(12) @Message - @Length(20) + @Length(0) public AttachInfo attachInfo; + + + /** * 鎶ヨ * DWORD diff --git a/app/src/main/res/layout/layout_rtk_setting.xml b/app/src/main/res/layout/layout_rtk_setting.xml index 4efa44a..ce6d041 100644 --- a/app/src/main/res/layout/layout_rtk_setting.xml +++ b/app/src/main/res/layout/layout_rtk_setting.xml @@ -149,6 +149,7 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:id="@+id/tv_rtk_model" + android:visibility="gone" android:text="@string/rtk_config_model" android:layout_weight="1"/> <TextView diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java index ac26ebc..aec3868 100644 --- a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java +++ b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java @@ -330,7 +330,7 @@ // TODO: 2019/12/12 鏍规嵁MSG_ID 鏉ュ姞鍏� 瓒呮椂锛� 鏆備笉鍐� if (channel == null){ - Log.i(TAG, "sendMsg fail,channel涓虹┖"+msg); + MyLog.i("PlatformMessage", "sendMsg fail,channel涓虹┖"+msg); } try { MyLog.i("PlatformMessage", "sendMsg: "+ BytesUtils.bytesToHexString(msg)); @@ -338,7 +338,7 @@ byteBuf.writeBytes(msg); channel.writeAndFlush(byteBuf); } catch (Exception e) { - Log.i(TAG, "鍙戦�佹秷鎭け璐ワ紝reason="+e.getMessage()+"\t"+msg); + Log.i("PlatformMessage", "鍙戦�佹秷鎭け璐ワ紝reason="+e.getMessage()+"\t"+msg); } } diff --git a/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java b/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java index 84be1d7..c483dfa 100644 --- a/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java +++ b/im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java @@ -168,6 +168,7 @@ try { Object value = fieldDefine.field.get(this); String hex = fieldDefine.coder.encode(value); + Log.i("PlatformMessage", "FieldName: "+fieldDefine.field.getName()+" hex:"+hex); if (hex == null) { fieldDefine.relativeLengthField.set(this, 0); } else { @@ -211,6 +212,7 @@ } } // System.out.println(hex); + Log.i("PlatformMessage value", "FieldName: "+fieldDefine.field.getName()+" hex:"+hex); sb.append(hex); } catch (IllegalAccessException e) { this.buildException(e.getMessage()); -- Gitblit v1.8.0