From c9fc43ded908425af405f61a1df3474dd3105e92 Mon Sep 17 00:00:00 2001 From: lizhanwei <Dana_Lee1016@126.com> Date: 星期三, 26 二月 2020 14:36:30 +0800 Subject: [PATCH] 完成所有协议 --- app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 49 ++++++ app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SPEED.java | 19 ++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java | 33 ++++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java | 18 ++ app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java | 4 app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SpeedCoder.java | 29 ++++ app/src/main/java/safeluck/drive/evaluation/app.java | 67 ++++++++- app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 27 +++ app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java | 31 ++++ app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java | 14 + app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java | 9 + app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 59 +++++++ app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java | 5 14 files changed, 329 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java index 0e641f0..39fe12a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailProjDao.java @@ -25,14 +25,14 @@ * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃 * @return */ - @Query("SELECT emp_id,stu_id,deducting_reason,score_deducting,item_content from criteria_one INNER JOIN fail_projects ON criteria_one.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=1") + @Query("SELECT emp_id,stu_id, utc ,sn ,deducting_reason,score_deducting,item_content from criteria_one INNER JOIN fail_projects ON criteria_one.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=1") LiveData<List<FailedProj_select>> getFailedProjectsForI(long stu_id); /** * 鏌ヨ 绉戠洰浜� II绫昏�冨満鐨勫け璐ラ」鐩� 锛堝琛ㄦ煡璇級 * 濡傛灉瑕佹坊鍔� 绉戠洰浜孖I III绫昏�冨満澶辫触椤圭洰锛岄渶瑕佸缓绔嬬浉搴旂殑璇勫垽鏍囧噯琛ㄦ暟鎹〃 * @return */ - @Query("SELECT emp_id,stu_id,deducting_reason,score_deducting,item_content from criteria_two INNER JOIN fail_projects ON criteria_two.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=2") + @Query("SELECT emp_id,stu_id,utc,sn,deducting_reason,score_deducting,item_content from criteria_two INNER JOIN fail_projects ON criteria_two.item_id= fail_projects.emp_id where fail_projects.stu_id=:stu_id and fail_projects.subject=2") LiveData<List<FailedProj_select>> getFailedProjectsForII(long stu_id); /** diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java index 0794aee..5c4fa41 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj.java @@ -37,13 +37,30 @@ //浣滀负澶栭敭锛屽搴擨绫昏�冨満鐨刬tem_id @ColumnInfo(name = "emp_id") private int emp_id; - - public FailedProj(int subject, int emp_id,long stu_id) { + private int sn; + private String utc; + public FailedProj(int subject, int emp_id,long stu_id,String utc,int sn) { this.subject = subject; this.emp_id = emp_id; this.stu_id = stu_id; + this.sn = sn; + this.utc = utc; + } + public int getSn() { + return sn; } + public void setSn(int sn) { + this.sn = sn; + } + + public String getUtc() { + return utc; + } + + public void setUtc(String utc) { + this.utc = utc; + } public int getId() { return id; } @@ -75,4 +92,16 @@ public void setEmp_id(int emp_id) { this.emp_id = emp_id; } + + @Override + public String toString() { + return "FailedProj{" + + "id=" + id + + ", stu_id=" + stu_id + + ", subject=" + subject + + ", emp_id=" + emp_id + + ", sn=" + sn + + ", utc='" + utc + '\'' + + '}'; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java index f0f3634..c62956c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/failitems/FailedProj_select.java @@ -16,6 +16,8 @@ private long stu_id; private String item_content; private String deducting_reason; + private int sn; + private String utc; private int score_deducting; public int getEmp_id() { @@ -42,6 +44,22 @@ this.deducting_reason = deducting_reason; } + public int getSn() { + return sn; + } + + public void setSn(int sn) { + this.sn = sn; + } + + public String getUtc() { + return utc; + } + + public void setUtc(String utc) { + this.utc = utc; + } + public long getStu_id() { return stu_id; } diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index dda96f5..1795cdf 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -25,6 +25,7 @@ import safeluck.drive.evaluation.DB.rtktb.RTKConfigViewModel; import safeluck.drive.evaluation.DB.signalConfigdb.SignalConfigViewModel; import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.SignalConfigRemote; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; @@ -54,6 +55,7 @@ import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.util.PermissionManager; import safeluck.drive.evaluation.util.SPUtils; +import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; import safeluck.drive.evaluation.viewmodels.MainViewModel; import safeluck.drive.evaluation.viewmodels.RTKConnAndLogin; import safeluck.drive.evaluation.viewmodels.RTKConnAndLoginViewModel; @@ -158,10 +160,27 @@ setContentView(R.layout.activity_main); // TODO // 杩涜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); + final String userId = "100002"; + final String token = "token_" + userId; + ExamPlatformModel examPlatformModel = ViewModelProviders.of(this).get(ExamPlatformModel.class); + examPlatformModel.getDataChange().observe(this, new Observer<Integer>() { + @Override + public void onChanged(Integer integer) { + Log.i(TAG, "ExamPlatformModel onChanged: integer=="+integer); + if (integer == 1){ + MyLog.i("閲嶆柊杩炴帴鑰冭瘯骞冲彴"); + }else{ + + } + + + String str = ExamPlatformData.getInstance().getPlatformIP(); + String hosts = "[{\"host\":"+str+","+ "\"port\":"+ExamPlatformData.getInstance().getPlatformPort()+"}]"; + MyLog.i("hosts="+hosts); + IMSClientBootstrap.getInstance().init(userId,token,hosts,1,MainActivity.this); + } + }); + diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 540476d..81a393d 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -43,6 +43,7 @@ import safeluck.drive.evaluation.DB.exam_status.ExamStatusWoker; import safeluck.drive.evaluation.DB.failitems.FailedProj; import safeluck.drive.evaluation.DB.failitems.FailedProjRepository; +import safeluck.drive.evaluation.DB.failitems.FailedProj_select; import safeluck.drive.evaluation.DB.gps.GpsInfoWorker; import safeluck.drive.evaluation.DB.rtktb.RTKConfig; import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; @@ -51,9 +52,11 @@ import safeluck.drive.evaluation.im.IMSClientBootstrap; import safeluck.drive.evaluation.im.IMSConnectStatusListener; import safeluck.drive.evaluation.im.MessageProcessor; +import safeluck.drive.evaluation.platformMessage.AttachInfo; import safeluck.drive.evaluation.platformMessage.JKMessage0100; import safeluck.drive.evaluation.platformMessage.JKMessage0101; import safeluck.drive.evaluation.platformMessage.JKMessage0203; +import safeluck.drive.evaluation.platformMessage.JKMessage0206; import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.util.SystemUtil; @@ -175,24 +178,23 @@ 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(); int emp_id = jsonObject.get("wrong_id").getAsInt(); + String utc = jsonObject.get("utc").getAsString(); + MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪墠鐨剈tc="+utc); + utc = utc.substring(2,utc.length()-3); + MyLog.i("璇勫垽娑堟伅瑙f瀽涔嬪悗鐨剈tc="+utc); + int sn = jsonObject.get("sn").getAsInt(); if (emp_id>31|| emp_id<0){ MyLog.i(TAG,"emp_id瓒呭嚭鑼冨洿涓嶈兘鎻掑叆鏁版嵁搴擄紙I绫昏�冨満锛�"); return; } - failedProjRepository.insert(new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID)); + FailedProj failedProj = new FailedProj(Constant.SUBJECT_I, emp_id, Constant.TEST_STU_ID,utc,sn); + MyLog.i("鎻掑叆fail_projects琛�="+failedProj.toString()); + failedProjRepository.insert(failedProj); } } @@ -266,6 +268,51 @@ CEventCenter.dispatchEvent(Constant.BIND_SPEED_TOPIC,cmd,0,json); break; + case Constant.RTK_INFO: + try { + JSONObject jsSpeed = new JSONObject(json); + double latitude = jsSpeed.getDouble("latitude"); + double longitude = jsSpeed.getDouble("longitude"); + double altitude = jsSpeed.getDouble("altitude"); + double speed = jsSpeed.getDouble("speed"); + int qf = jsSpeed.getInt("qf"); + double track_ture = jsSpeed.getDouble("track_ture"); + String utc = jsSpeed.getString("utc"); + utc = utc.replace(".",""); + MyLog.i("RTK info 淇敼鍚庣殑utc"+utc); + JKMessage0206 jkMessage0206 = new JKMessage0206(); + jkMessage0206.alert = 0; + jkMessage0206.status = 0; + jkMessage0206.jd = longitude; + jkMessage0206.wd = latitude; + jkMessage0206.gaoCheng = (int)altitude; + jkMessage0206.speed = speed; + jkMessage0206.fangXiang = (int)track_ture; + jkMessage0206.rf = qf; + jkMessage0206.timeBCD = utc; + jkMessage0206.json =json; + jkMessage0206.length = jkMessage0206.json.length(); + AttachInfo attachInfo = new AttachInfo(); + attachInfo.attach_message_id = Integer.parseInt(String.valueOf(0x40)); + 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); + } catch (JSONException e) { + e.printStackTrace(); + } + + break; } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index f790567..dde1e74 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -1,31 +1,46 @@ package safeluck.drive.evaluation.bean; import android.content.Context; +import android.util.Log; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.ViewModelProviders; + +import com.anyun.exam.lib.MyLog; import java.util.Random; import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.util.SPUtils; +import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; +import safeluck.drive.evaluation.viewmodels.MainViewModel; public class ExamPlatformData { private static final ExamPlatformData ourInstance = new ExamPlatformData(); private int exam_id =12345;//鑰冭瘯鍞竴ID + private String id;//韬唤璇� + + private String ip; + private int port; + public static ExamPlatformData getInstance() { return ourInstance; } - private ExamPlatformData() { + private ExamPlatformData() { } public String getPlatformIP(){ - return (String) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_IP,""); + ip = (String) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_IP,"47.93.157.103"); + return ip; } public int getPlatformPort(){ - return (int) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_PORT,0); + port = (int) SPUtils.get(app.getAppContext(),SPUtils.PLATFORM_PORT,2020); + return port; } /** @@ -33,8 +48,24 @@ * @param ip */ public void insertPlatformIp(String ip){ + SPUtils.put(app.getAppContext(),SPUtils.PLATFORM_IP,ip); + } + + /** + * 姣旇緝ip鍦板潃鍜岀鍙e彿锛� + * @param ip + * @param port + * @return ip鍜岀鍙e叾涓湁鍙樺寲锛岃繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse + */ + public boolean compareIPandPort(String ip,int port){ + MyLog.i( "compareIPandPort: "+ip+" "+port); + if(!getPlatformIP().equalsIgnoreCase(ip) || getPlatformPort()!=port){ + MyLog.i("ip鍜岀鍙f湁鍙樺寲"); + return true; + } + return false; } /** @@ -45,11 +76,17 @@ SPUtils.put(app.getAppContext(),SPUtils.PLATFORM_PORT,port); } - public int getExamUniqueID(){ - - return exam_id; + public String getID() { + return id; } + public void setId(String id) { + this.id = id; + } + + public int getExam_id() { + return exam_id; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java index c718b37..808b110 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java @@ -3,6 +3,7 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.lifecycle.ViewModelProviders; import android.util.Log; import android.view.LayoutInflater; @@ -25,6 +26,7 @@ import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.util.FileUtil; +import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; /** * 鍩虹鏁版嵁璁剧疆 @@ -41,7 +43,7 @@ private Button btn_config_signal; private Button btn_mcu_upgrade; private EditText et_ip,et_port; - + private ExamPlatformModel examPlatformModel; public static SupportFragment newInstance() { return new BaseDatasFragment(); } @@ -53,11 +55,12 @@ View view = inflater.inflate(R.layout.layout_base_datas, container, false); initView(view); + examPlatformModel = ViewModelProviders.of(this).get(ExamPlatformModel.class); return view; } private void initView(View view) { - view.findViewById(R.id.btn_save_platform); + view.findViewById(R.id.btn_save_platform).setOnClickListener(this); et_ip = view.findViewById(R.id.et_platform_ip); et_port = view.findViewById(R.id.et_platform_port); btn_inspect_signal = view.findViewById(R.id.btn_inpsect_signal); @@ -97,8 +100,11 @@ } break; case R.id.btn_save_platform: - ExamPlatformData.getInstance().insertPlatformIp(et_ip.getText().toString().trim()); - ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim())); + if(ExamPlatformData.getInstance().compareIPandPort(et_ip.getText().toString().trim(),Integer.parseInt(et_port.getText().toString().trim()))){ + examPlatformModel.changeDataValue(1); + ExamPlatformData.getInstance().insertPlatformIp(et_ip.getText().toString().trim()); + ExamPlatformData.getInstance().insertPlatformPort(Integer.parseInt(et_port.getText().toString().trim())); + } break; default: break; diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index a325f73..d518075 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -49,6 +49,7 @@ import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.adapter.ScoreAdapter; import safeluck.drive.evaluation.DB.exam_status.ExamStatus; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.ScoreBean; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; @@ -57,6 +58,7 @@ import safeluck.drive.evaluation.im.MessageProcessor; import safeluck.drive.evaluation.platformMessage.JKMessage0201; import safeluck.drive.evaluation.platformMessage.JKMessage0202; +import safeluck.drive.evaluation.platformMessage.JKMessage0203; import safeluck.drive.evaluation.platformMessage.JKMessage0204; /** @@ -156,6 +158,7 @@ mScoreAdapter.addDatas(mArrayList); } //TODO 鍙戦�丣KMessage0203 缁欏钩鍙帮紝杩欏効鏈夌偣澶嶆潅锛岀湅鎬庝箞澶勭悊 + sendJKMessage0203(failedProj_selects); currTotalScore -=item_id; if (currTotalScore < Constant.PASSING_SCORE){ MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸"); @@ -213,6 +216,7 @@ tv_name.setText(getString(R.string.name)+student.getName()); tv_id.setText(getString(R.string.user_id)+student.getID()); + ExamPlatformData.getInstance().setId(student.getID()); } } } @@ -231,6 +235,53 @@ }); return view; + } + private List<Integer> sns =new ArrayList<>(); + private void sendJKMessage0203(List<FailedProj_select> failedProj_selects) { + JKMessage0203 jkMessage0203 = new JKMessage0203(); + jkMessage0203.phone = "0314200100000004"; + jkMessage0203.ID = ExamPlatformData.getInstance().getID(); + jkMessage0203.exam_id = ExamPlatformData.getInstance().getExam_id(); + + for (int i = 0; i < failedProj_selects.size(); i++) { + if (hasSnEqulas(failedProj_selects)){ + + }else{ + MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"); + sns.add(failedProj_selects.get(i).getSn()); + jkMessage0203.timeBCD = failedProj_selects.get(i).getUtc(); + jkMessage0203.fail_item_id = failedProj_selects.get(i).getEmp_id(); + jkMessage0203.fail_score = failedProj_selects.get(i).getScore_deducting(); + jkMessage0203.fail_reason = failedProj_selects.get(i).getDeducting_reason(); + } + + } + + + + + + + + MessageProcessor.getInstance().sendMessage(jkMessage0203); + } + + private boolean hasSnEqulas(List<FailedProj_select> failedProj_selects){ + if (sns.size() > 0){ + for (int i = 0; i < failedProj_selects.size(); i++) { + for (int j = 0; j < sns.size(); j++) { + if (sns.get(j) == failedProj_selects.get(i).getSn()){ + MyLog.i("sn鐩稿悓锛屼笉鍙�"); + return true; + }else{ + continue; + } + } + } + + } + return false; + } private int whatPaintColor(ExamStatus examStat) { @@ -344,8 +395,8 @@ jkMessage0202.phone = "0314200100000004"; jkMessage0202.timeBCD = new Date(); jkMessage0202.curr_exam = 0; - jkMessage0202.ID = "123456789"; - jkMessage0202.exam_id = 123456; + jkMessage0202.ID = ExamPlatformData.getInstance().getID(); + jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); MessageProcessor.getInstance().sendMessage(jkMessage0202); break; case R.id.tv_stop: @@ -399,8 +450,8 @@ jkMessage0204.timeBCD = new Date(); jkMessage0204.score = 10; jkMessage0204.stop = JKMessage0204.SUCC_STOP; - jkMessage0204.ID = "123456789"; - jkMessage0204.exam_id = 123456; + jkMessage0204.ID = ExamPlatformData.getInstance().getID(); + jkMessage0204.exam_id = ExamPlatformData.getInstance().getExam_id(); MessageProcessor.getInstance().sendMessage(jkMessage0204); } 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 b636ff8..5ed9ac4 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/TcpFragment.java @@ -236,7 +236,7 @@ case R.id.btn_fail: JKMessage0203 jkMessage0203 = new JKMessage0203(); jkMessage0203.phone = "0314200100000004"; - jkMessage0203.timeBCD = new Date(); + jkMessage0203.timeBCD = "200226135444"; jkMessage0203.fail_item_id = 4; jkMessage0203.fail_score = 10; jkMessage0203.fail_reason = "鍙戝姩鏈哄惎鍔ㄥ悗锛屼笉鍙婃椂鏉惧紑鍚姩寮�鍏�"; diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java index c5c6217..aff895c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0203.java @@ -2,6 +2,7 @@ import com.safeluck.aykj.annotation.Ascii; import com.safeluck.aykj.annotation.BcdDateTime; +import com.safeluck.aykj.annotation.Hex; import com.safeluck.aykj.annotation.Int32; import com.safeluck.aykj.annotation.Int8; import com.safeluck.aykj.annotation.Length; @@ -15,8 +16,12 @@ @Ascii public String ID; @Order(2) - @BcdDateTime - public Date timeBCD; + @Length(6) + @Hex + public String timeBCD; +// @Order(2) +// @BcdDateTime +// public Date timeBCD; @Order(3) @Int32 public int exam_id; 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 a56e6ef..0f23386 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JKMessage0206.java @@ -3,6 +3,7 @@ import com.safeluck.aykj.annotation.*; import safeluck.drive.evaluation.platformMessage.decoder.JWD; +import safeluck.drive.evaluation.platformMessage.decoder.SPEED; public class JKMessage0206 extends JK2019MessageBase { @Order(1) @@ -22,8 +23,8 @@ @Int16 public int gaoCheng; @Order(6) - @Int16 - public int speed; + @SPEED + public double speed; @Order(7) @Int16 public int fangXiang; diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SPEED.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SPEED.java new file mode 100644 index 0000000..f265772 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SPEED.java @@ -0,0 +1,19 @@ +package safeluck.drive.evaluation.platformMessage.decoder; + +import com.safeluck.aykj.annotation.Length; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Created by zw on 2017/6/15. + */ + +@Length(2) +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD}) +public @interface SPEED { +// Class<? extends IMessageCoder<?>>[] coder() default Int32Coder.class; +} \ No newline at end of file diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SpeedCoder.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SpeedCoder.java new file mode 100644 index 0000000..f1e565c --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/SpeedCoder.java @@ -0,0 +1,29 @@ +package safeluck.drive.evaluation.platformMessage.decoder; + +import com.safeluck.aykj.decoder.BaseDecoder; +import com.safeluck.aykj.decoder.Int16Coder; +import com.safeluck.aykj.decoder.Int32Coder; + +import java.math.BigDecimal; + +/** + * Created by zw on 2017/6/15. + */ + +public class SpeedCoder extends BaseDecoder<Double> { + Int16Coder coder = new Int16Coder(); + @Override + public Double decode(String str) { + double ret = coder.decode(str); + double x = ret / 10; + BigDecimal bg = new BigDecimal(x); + double f1 = bg.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); + return f1; + } + + @Override + public String encode(Double str) { + int speed = (int)(str * 10); + return coder.encode(speed); + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java b/app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java new file mode 100644 index 0000000..914671a --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/viewmodels/ExamPlatformModel.java @@ -0,0 +1,31 @@ +package safeluck.drive.evaluation.viewmodels; + + +import android.util.Log; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +import com.anyun.exam.lib.MyLog; + +import java.util.concurrent.atomic.AtomicInteger; + +public class ExamPlatformModel extends ViewModel { + private static final String TAG = "ExamPlatformModel"; + private MutableLiveData<Integer> dataChange = new MutableLiveData<>(0); + public LiveData<Integer> getDataChange(){ + + return dataChange; + } + public void changeDataValue(final int value){ + new Thread(new Runnable() { + @Override + public void run() { + dataChange.postValue(value); + } + }).start(); + } + + +} -- Gitblit v1.8.0