From caab8f84247d47251ca7997356b03bf6f06b1811 Mon Sep 17 00:00:00 2001
From: lizhanwei <Dana_Lee1016@126.com>
Date: 星期一, 17 二月 2020 14:40:36 +0800
Subject: [PATCH] 1.上报开始考试协议 2.结束考试 3.上报单项扣分项目

---
 app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadPosMessage.java |   28 +++++
 app/src/main/java/safeluck/drive/evaluation/platformMessage/StartExam2Server.java |   85 +++++++++++++++++
 app/src/main/java/safeluck/drive/evaluation/platformMessage/StopExamMessage.java  |   28 +++++
 app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java             |   26 -----
 app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadStuItem.java    |  127 +++++++++++++++++++++++++
 5 files changed, 269 insertions(+), 25 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 0279ebc..9eecc59 100644
--- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
+++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java
@@ -5,49 +5,25 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
-import android.speech.tts.TextToSpeech;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import androidx.appcompat.widget.AppCompatEditText;
-import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProviders;
-import androidx.work.OneTimeWorkRequest;
-import androidx.work.WorkManager;
 
-import com.anyun.exam.lib.util.ByteUtil;
 import com.anyun.exam.lib.util.Speaker;
 import com.google.android.material.textfield.TextInputEditText;
 
-import java.util.List;
-import java.util.Locale;
-import java.util.Random;
-
 import me.yokeyword.fragmentation.SupportFragment;
-import safeluck.drive.evaluation.DB.Student;
-import safeluck.drive.evaluation.DB.WokViewModel;
-import safeluck.drive.evaluation.DB.WorkRoomDataBase;
-import safeluck.drive.evaluation.DB.appstatusdb.AppStatusInitWork;
 import safeluck.drive.evaluation.DB.criterias.CriteriaForI;
 import safeluck.drive.evaluation.DB.criterias.viewmodel.CriteriaIViewModel;
-import safeluck.drive.evaluation.DB.exam_status.ExamStatus;
-import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker;
-import safeluck.drive.evaluation.DB.exam_status.ExamStatusViewModel;
-import safeluck.drive.evaluation.DB.failitems.FailedProj;
-import safeluck.drive.evaluation.DB.failitems.FailedProj_select;
-import safeluck.drive.evaluation.DB.gps.GpsInfoWorker;
 import safeluck.drive.evaluation.R;
-import safeluck.drive.evaluation.bean.RegisterMessage;
+import safeluck.drive.evaluation.platformMessage.RegisterMessage;
 import safeluck.drive.evaluation.im.IMSClientBootstrap;
-import safeluck.drive.evaluation.im.MessageProcessor;
-import safeluck.drive.evaluation.tcp.ConnectThread;
-import safeluck.drive.evaluation.util.Utils;
 
 /**
  * MyApplication2
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/StartExam2Server.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/StartExam2Server.java
new file mode 100644
index 0000000..91341cd
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/StartExam2Server.java
@@ -0,0 +1,85 @@
+package safeluck.drive.evaluation.platformMessage;
+
+import android.text.TextUtils;
+
+import com.anyun.im_lib.util.ByteUtil;
+
+/**
+ * 涓婃姤寮�濮嬭�冭瘯
+ */
+public class StartExam2Server extends DriveExamProtocol {
+    private static final short BODY_LENGTH = 29;
+
+    private String ID;//韬唤璇�
+    private String BCDStr;//鏃堕棿BCD[6] YYMMDDhhmmss
+    private int exam_id;// DWORD  4瀛楄妭 鍞竴鑰冭瘯ID鏍囧織
+    private short examaCourse = 0;
+    private int currPos = 0;
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public StartExam2Server(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        byte [] messageBody = new byte[BODY_LENGTH];
+        byte[] idBytes = !TextUtils.isEmpty(ID)?ID.getBytes():"".getBytes();
+        byte[] timeStampBCD = ByteUtil.str2Bcd(BCDStr);
+        byte[] examIdBytes = ByteUtil.intGetBytes(exam_id);
+        byte[] examBytes = ByteUtil.shortGetByte(examaCourse);
+
+        System.arraycopy(idBytes,0,messageBody,currPos,idBytes.length);
+        currPos += 18;
+
+        System.arraycopy(timeStampBCD,0,messageBody,currPos,timeStampBCD.length);
+        currPos += timeStampBCD.length;
+
+        System.arraycopy(examIdBytes,0,messageBody,currPos,examIdBytes.length);
+        currPos += 4;
+
+        System.arraycopy(examBytes,0,messageBody,currPos,examBytes.length);
+        return messageBody;
+    }
+
+    @Override
+    protected short msgBodyLength() {
+        return BODY_LENGTH;
+    }
+
+    public String getID() {
+        return ID;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+    public String getBCDStr() {
+        return BCDStr;
+    }
+
+    public void setBCDStr(String BCDStr) {
+        this.BCDStr = BCDStr;
+    }
+
+    public int getExam_id() {
+        return exam_id;
+    }
+
+    public void setExam_id(int exam_id) {
+        this.exam_id = exam_id;
+    }
+
+    public short getExamaCourse() {
+        return examaCourse;
+    }
+
+    public void setExamaCourse(short examaCourse) {
+        this.examaCourse = examaCourse;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/StopExamMessage.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/StopExamMessage.java
new file mode 100644
index 0000000..5fef4d0
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/StopExamMessage.java
@@ -0,0 +1,28 @@
+package safeluck.drive.evaluation.platformMessage;
+
+/**
+ * 涓婃姤缁撴潫鑰冭瘯
+ */
+public class StopExamMessage extends DriveExamProtocol {
+    private static final short BODY_LENGTH = 29;
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public StopExamMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        byte [] messageBody = new byte[BODY_LENGTH];
+        return messageBody;
+    }
+
+    @Override
+    protected short msgBodyLength() {
+        return BODY_LENGTH;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadPosMessage.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadPosMessage.java
new file mode 100644
index 0000000..da92e22
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadPosMessage.java
@@ -0,0 +1,28 @@
+package safeluck.drive.evaluation.platformMessage;
+
+/**
+ * 浣嶇疆涓婃姤
+ */
+public class UploadPosMessage extends DriveExamProtocol {
+    private static final short BODY_LENGTH = 29;
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public UploadPosMessage(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        byte [] messageBody = new byte[BODY_LENGTH];
+        return messageBody;
+    }
+
+    @Override
+    protected short msgBodyLength() {
+        return BODY_LENGTH;
+    }
+}
diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadStuItem.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadStuItem.java
new file mode 100644
index 0000000..c24e80b
--- /dev/null
+++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/UploadStuItem.java
@@ -0,0 +1,127 @@
+package safeluck.drive.evaluation.platformMessage;
+
+import android.text.TextUtils;
+
+import com.anyun.im_lib.util.ByteUtil;
+
+import java.text.SimpleDateFormat;
+
+/**
+ * 涓婃姤瀛﹀憳鍗曢」鎵e垎椤圭洰
+ */
+public class UploadStuItem extends DriveExamProtocol {
+    private static final short BODY_LENGTH = 30;
+
+    private short reasonLength = 0;
+    private int currPos = 0;
+
+    private String ID;//韬唤璇�
+    private String BCDStr;//鏃堕棿BCD[6] YYMMDDhhmmss
+    private int exam_id;// DWORD  4瀛楄妭 鍞竴鑰冭瘯ID鏍囧織
+    private short fail_item_id;//鎵e垎椤圭洰缂栧彿 1瀛楄妭
+    private short score;//鎵e垎鍒嗘暟 涓�瀛楄妭
+    private String reason;//鎵e垎鍘熷洜
+
+    public String getID() {
+        return ID;
+    }
+
+    public void setID(String ID) {
+        this.ID = ID;
+    }
+
+
+
+    public int getExam_id() {
+        return exam_id;
+    }
+
+    public void setExam_id(int exam_id) {
+        this.exam_id = exam_id;
+    }
+
+    public short getFail_item_id() {
+        return fail_item_id;
+    }
+
+    public void setFail_item_id(short fail_item_id) {
+        this.fail_item_id = fail_item_id;
+    }
+
+    public short getScore() {
+        return score;
+    }
+
+    public void setScore(short score) {
+        this.score = score;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getBCDStr() {
+        return BCDStr;
+    }
+
+    /**
+     * 璁剧疆鏃堕棿
+     * 褰㈠"200217020618"瀛楃涓�
+     * @param BCDStr
+     */
+    public void setBCDStr(String BCDStr) {
+        this.BCDStr = BCDStr;
+    }
+
+    /**
+     * 鏋勯�犲嚱鏁�
+     *
+     * @param msg_id 娑堟伅ID
+     */
+    public UploadStuItem(short msg_id) {
+        super(msg_id);
+    }
+
+    @Override
+    protected byte[] createMessageBody() {
+        byte [] messageBody = new byte[BODY_LENGTH+reasonLength];
+        byte[] idBytes = !TextUtils.isEmpty(ID)?ID.getBytes():"".getBytes();
+        byte[] timeStampBCD = ByteUtil.str2Bcd(BCDStr);
+        byte[] examIdBytes = ByteUtil.intGetBytes(exam_id);
+        byte[] fail_item_idBytes = ByteUtil.shortGetByte(fail_item_id);
+        byte[] score_bytes = ByteUtil.shortGetByte(score);
+        byte[] reasonBytes = !TextUtils.isEmpty(reason)?reason.getBytes():"".getBytes();
+
+        reasonLength = (short) reasonBytes.length;
+
+        System.arraycopy(idBytes,0,messageBody,currPos,idBytes.length);
+        currPos += 18;
+
+        System.arraycopy(timeStampBCD,0,messageBody,currPos,timeStampBCD.length);
+        currPos += timeStampBCD.length;
+
+        System.arraycopy(examIdBytes,0,messageBody,currPos,examIdBytes.length);
+        currPos += 4;
+
+        System.arraycopy(fail_item_idBytes,0,messageBody,currPos,fail_item_idBytes.length);
+        currPos += 1;
+
+        System.arraycopy(score_bytes,0,messageBody,currPos,score_bytes.length);
+        currPos += 1;
+
+        System.arraycopy(reasonBytes,0,messageBody,currPos,reasonLength);
+
+
+
+        return messageBody;
+    }
+
+    @Override
+    protected short msgBodyLength() {
+        return (short) (BODY_LENGTH+reasonLength);
+    }
+}

--
Gitblit v1.8.0