From 87ab0bd072bd42c09a649759090942781ab53fcb Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期二, 18 二月 2020 16:08:18 +0800
Subject: [PATCH] 所有消息测试方法

---
 im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java              |    8 ++
 im_lib/src/main/java/com/safeluck/aykj/message/BinMessageBase.java    |    6 --
 im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java       |   19 ++++--
 app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java |   64 ++++++++++++++++++++-
 app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java  |   31 +++++++---
 lib/src/main/java/com/anyun/exam/lib/MyLog.java                       |    2 
 6 files changed, 103 insertions(+), 27 deletions(-)

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 092b3c4..fac1003 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -20,6 +20,9 @@
 import com.google.android.material.textfield.TextInputEditText;
 import com.safeluck.aykj.utils.BytesUtils;
 
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+
 import me.yokeyword.fragmentation.SupportFragment;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
 import safeluck.drive.evaluation.DB.criterias.viewmodel.CriteriaIViewModel;
@@ -28,6 +31,10 @@
 import safeluck.drive.evaluation.platformMessage.GainStuMessage;
 import safeluck.drive.evaluation.platformMessage.JKClientCommonMessage;
 import safeluck.drive.evaluation.platformMessage.JKMessage0101;
+import safeluck.drive.evaluation.platformMessage.JKMessage0201;
+import safeluck.drive.evaluation.platformMessage.JKMessage0202;
+import safeluck.drive.evaluation.platformMessage.JKMessage0203;
+import safeluck.drive.evaluation.platformMessage.JKMessage0204;
 import safeluck.drive.evaluation.platformMessage.JKRegisterMessage;
 import safeluck.drive.evaluation.platformMessage.RegisterMessage;
 import safeluck.drive.evaluation.im.IMSClientBootstrap;
@@ -118,8 +125,8 @@
                 String userId = "100002";
                 String token = "token_" + userId;
 //                String hosts = "[{\"host\":\"47.93.80.84\", \"port\":12125}]";
-//                String hosts = "[{\"host\":\"47.93.157.103\", \"port\":2020}]";
-                String hosts = "[{\"host\":\"192.168.31.77\", \"port\":12125}]";
+                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);
                 break;
@@ -182,6 +189,14 @@
                 String str1 = jkClientCommonMessage.toString();
 
                 Log.i(TAG, "onClick1: "+ str1+" ============");
+                String hex = "B7 A2 B6 AF BB FA C6 F4 B6 AF BA F3 A3 AC B2 BB BC B0 CA B1 CB C9 BF AA C6 F4 B6 AF BF AA B9 D8";
+                String string = null;
+                try {
+                    string = new String(BytesUtils.hexStringToBytes(hex.replace(" ","")),"GBK");
+                } catch (UnsupportedEncodingException e) {
+                    e.printStackTrace();
+                }
+                Log.i(TAG, "onClick: string="+string);
                 break;
             case R.id.btn_register:
 
@@ -203,17 +218,60 @@
                 break;
             case R.id.btn_auth:
                 JKMessage0101 jkMessage0101 = new JKMessage0101();
-//                jkMessage0101.des =
+                jkMessage0101.messageId = 0x0101;
+                jkMessage0101.phone = "0008618513021245";
+                jkMessage0101.protocalVer = 235;
+                jkMessage0101.des ="0102030405060708";
+                jkMessage0101.timestamp = (int) System.currentTimeMillis();
+                byte[] jjk0101 = jkMessage0101.toBytes();
+                MessageProcessor.getInstance().sendMessage(jjk0101);
                 break;
             case R.id.btn_gain:
+                JKMessage0201 jkMessage0201 = new JKMessage0201();
+                jkMessage0201.protocalVer = 235;
+                jkMessage0201.phone = "0008618513021245";
+                jkMessage0201.messageId = 0x0201;
+                jkMessage0201.currentExam = 1;
+                jkMessage0201.id = "123456789";
+                MessageProcessor.getInstance().sendMessage(jkMessage0201.toBytes());
                 break;
             case R.id.btn_start_exam:
+                JKMessage0202 jkMessage0202 = new JKMessage0202();
+                jkMessage0202.protocalVer = 235;
+                jkMessage0202.phone = "0008618513021245";
+                jkMessage0202.timeBCD = new Date();
+                jkMessage0202.messageId = 0x0202;
+                jkMessage0202.curr_exam = 1;
+                jkMessage0202.ID = "123456789";
+                jkMessage0202.exam_id = 123456;
+                MessageProcessor.getInstance().sendMessage(jkMessage0202.toBytes());
                 break;
             case R.id.btn_fail:
+                JKMessage0203 jkMessage0203 = new JKMessage0203();
+                jkMessage0203.messageId = 0x0203;
+                jkMessage0203.phone = "0008618513021245";
+                jkMessage0203.protocalVer = 235;
+                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.toBytes());
                 break;
             case R.id.btn_gps:
                 break;
             case R.id.btn_stop_exam:
+                JKMessage0204 jkMessage0204 = new JKMessage0204();
+                jkMessage0204.messageId = 0x0204;
+                jkMessage0204.protocalVer = 235;
+                jkMessage0204.phone = "0008618513021245";
+                jkMessage0204.timeBCD = new Date();
+                jkMessage0204.score = 10;
+                jkMessage0204.stop = JKMessage0204.SUCC_STOP;
+                jkMessage0204.ID = "123456789";
+                jkMessage0204.exam_id = 123456;
+                MessageProcessor.getInstance().sendMessage(jkMessage0204.toBytes());
                 break;
         }
     }
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 73a3a7f..419799d 100644
--- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
+++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java
@@ -4,10 +4,14 @@
 
 import com.anyun.exam.lib.MyLog;
 import com.anyun.im_lib.util.ByteUtil;
+import com.safeluck.aykj.utils.BytesUtils;
 
+import safeluck.drive.evaluation.platformMessage.JK2019MessageBase;
 import safeluck.drive.evaluation.platformMessage.PlatFormConstant;
 import safeluck.drive.evaluation.platformMessage.RegisterResp;
 import safeluck.drive.evaluation.platformMessage.ServerCommonRsp;
+import safeluck.drive.evaluation.platformMessage.utils.MessageEscaper;
+import safeluck.drive.evaluation.platformMessage.utils.MessageManager;
 import safeluck.drive.evaluation.util.CThreadPoolExecutor;
 import safeluck.drive.evaluation.util.Utils;
 
@@ -22,26 +26,35 @@
     private static final String TAG = MessageProcessor.class.getSimpleName();
 
     private MessageProcessor(){
-
+        messageEscaper = new MessageEscaper();
+        messageManager = new MessageManager();
     }
 
     private static class MessageProcessorInstance{
         private static final IMessageProcessor INSTANCE = new MessageProcessor();
     }
-
+    MessageEscaper messageEscaper;
+    MessageManager messageManager;
     public static IMessageProcessor getInstance(){
         return MessageProcessorInstance.INSTANCE;
     }
 
     @Override
     public void receiveMsg(byte[] message) {
-        byte[] datas = Utils.parseMsg(message);
-        Log.i(TAG, "receiveMsg: "+ ByteUtil.byte2HexStr(datas));
-        byte checkcolde=Utils.calCheckCode(ByteUtil.subArray(datas,0,datas.length-1));
-        if (checkcolde == datas[datas.length-1]){
-            Log.i(TAG, "receiveMsg: 娑堟伅姝g‘");
-            parseMessage(datas);
-        }
+//        byte[] datas = Utils.parseMsg(message);
+//        Log.i(TAG, "receiveMsg: "+ ByteUtil.byte2HexStr(datas));
+//        byte checkcolde=Utils.calCheckCode(ByteUtil.subArray(datas,0,datas.length-1));
+//        if (checkcolde == datas[datas.length-1]){
+//            Log.i(TAG, "receiveMsg: 娑堟伅姝g‘");
+//            parseMessage(datas);
+//        }
+
+
+        //鍙嶈浆涔�
+        byte[] datas=messageEscaper.unescape(message);
+        MyLog.i(PlatFormConstant.TAG,"杞箟杩囧悗鐨勬湇鍔℃秷鎭細"+ BytesUtils.bytesToHexString(datas));
+        JK2019MessageBase jk2019MessageBase = MessageManager.get(BytesUtils.bytesToHexString(datas));
+
     }
 
     private void parseMessage(byte[] datas) {
diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java b/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
index 97a2bbc..ff2bec0 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/netty/TCPReadHandler.java
@@ -59,12 +59,19 @@
         // TODO: 2019/12/4
         //鏈嶅姟绔繑鍥炴秷鎭悗
         ByteBuf buf = (ByteBuf) msg;
-        byte[] req = new byte[buf.readableBytes()];
-        buf.readBytes(req);
-        Log.i(TAG, "channelRead hex str: "+ ByteUtil.byte2HexStr(req));
-        String str = new String(req, "UTF-8");
-        if (req!=null && req.length>0)
-        imsClient.getMsgDispatcher().receivedMsg(   req );
+        int len = buf.readableBytes();
+        if (len>0){
+            byte[] req = new byte[len+2];
+            buf.readBytes(req,1,len);
+            req[0] = 0x7E;
+            req[len+1] = 0x7e;
+            Log.i(TAG, "channelRead hex str: "+ ByteUtil.byte2HexStr(req));
+//            if (req!=null && req.length>0){
+//
+//                imsClient.getMsgDispatcher().receivedMsg(   req );
+//            }
+        }
+
     }
 
     @Override
diff --git a/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java b/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
index 3e45dd5..be515e4 100644
--- a/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
+++ b/im_lib/src/main/java/com/anyun/im_lib/util/ByteUtil.java
@@ -3,6 +3,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import com.safeluck.aykj.utils.BytesUtils;
+
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
 import java.nio.charset.Charset;
@@ -71,7 +73,7 @@
             byte b = (byte) a;
             bbt[p] = b;
         }
-        Log.i(TAG, "str2Bcd: "+byte2HexStr(bbt));
+//        Log.i(TAG, "str2Bcd: "+byte2HexStr(bbt));
         return bbt;
     }
 
@@ -244,7 +246,9 @@
         String time = sdf.format(System.currentTimeMillis());
         byte[] timeStampBCD = ByteUtil.str2Bcd(time);
 
-
+//        String hex = "B7 A2 B6 AF BB FA C6 F4 B6 AF BA F3 A3 AC B2 BB BC B0 CA B1 CB C9 BF AA C6 F4 B6 AF BF AA B9 D8";
+//        String string = new String(BytesUtils.hexStringToBytes(hex.replace(" ","")));
+//        System.out.println(string);
     }
 
     public static byte[] subArray(byte[] srcBytes, int begin, int length) {
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 1ac6965..5fca7e5 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
@@ -163,7 +163,6 @@
             if (this.disabledFields.contains(fieldDefine.field.getName())) {
                 continue;
             }
-            Log.i("PlatFormMessage", "1field: "+fieldDefine.field.getName());
             if(fieldDefine.relativeLengthField==null)
                 continue;
             try {
@@ -187,17 +186,12 @@
             {
                 continue;
             }
-            Log.i("PlatFormMessage", "2field: "+fieldDefine.field.getName());
             try {
                 Object obj  = fieldDefine.field.get(this);
                 String hex = fieldDefine.coder.encode(obj);
                 if(hex==null)
                 {
                     hex = "";
-                }
-                if (fieldDefine.field.getName().equalsIgnoreCase("phone")){
-                    Log.i("PlatFormMessage", "phone toString: "+hex
-                    );
                 }
 
                 int defineLen = fieldDefine.getFieldLen();
diff --git a/lib/src/main/java/com/anyun/exam/lib/MyLog.java b/lib/src/main/java/com/anyun/exam/lib/MyLog.java
index 0b24a45..6a8c124 100644
--- a/lib/src/main/java/com/anyun/exam/lib/MyLog.java
+++ b/lib/src/main/java/com/anyun/exam/lib/MyLog.java
@@ -1,4 +1,4 @@
-package com.anyun.exam.lib;
+package com.anyun.im_lib.util;
 
 
 

--
Gitblit v1.8.0