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