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