From f430073ef8e63884eff78d57084f89e93fa0c1f0 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 05 三月 2020 13:33:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 47 +++++++ app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java | 34 ++++- app/src/main/res/drawable/antenna_red.png | 0 app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java | 7 + app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java | 2 app/src/main/res/layout/layout_train_fragment.xml | 12 +- app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java | 1 build.gradle | 6 app/src/main/res/drawable/antenna.png | 0 app/src/main/res/layout/activity_main.xml | 1 app/src/main/res/layout/profile_layout.xml | 1 im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java | 1 app/build.gradle | 8 + app/src/main/res/values/dimens.xml | 1 lib/src/main/cpp/test_items/driving_curve.cpp | 1 app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java | 2 app/src/main/res/values/strings.xml | 1 app/src/main/res/drawable/gps.png | 0 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java | 2 app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java | 2 im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java | 1 app/src/main/java/safeluck/drive/evaluation/app.java | 22 +++ app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt | 38 ++++++ app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 8 + app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java | 11 + app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java | 59 +++++---- app/src/main/res/layout/layout_net_train.xml | 5 app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java | 2 app/src/main/java/safeluck/drive/evaluation/DB/Constant.java | 4 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 4 app/src/main/res/layout/networktoolbar.xml | 49 ++++++++ 31 files changed, 280 insertions(+), 52 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 757bef6..2f7d9fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'com.android.application' +apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-android' android { compileSdkVersion 28 @@ -59,4 +61,10 @@ implementation 'com.google.code.gson:gson:2.8.6' implementation 'com.facebook.stetho:stetho:1.5.0' implementation project(path: ':im_lib') + implementation "androidx.core:core-ktx:+" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0" + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} +repositories { + mavenCentral() } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java index cc7a81b..711a645 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java @@ -9,4 +9,8 @@ public class Constant { public static final String CRITERIAFOR_I_JSON = "criteria_I.json"; public static final String CRITERIAFOR_II_JSON = "criteria_II.json"; + public static final String RTK_CONFIG_UPDATE_JSON = "RTK_CONFIG_UPDATE_JSON"; + public static final String RTK_CONFIG_PHONE = "RTK_CONFIG_PHONE"; + public static final String RTK_CONFIG_IMEI = "RTK_CONFIG_IMEI"; + public static final String RTK_CONFIG_SN = "sn"; } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java index 98a58fd..a97efd0 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/appstatusdb/AppStatusWorker.java @@ -1,6 +1,7 @@ package safeluck.drive.evaluation.DB.appstatusdb; import android.content.Context; +import android.util.Log; import androidx.annotation.NonNull; import androidx.work.Worker; @@ -34,6 +35,7 @@ public Result doWork() { String[] str = getInputData().getStringArray(Constant.APP_STATUS); JSONObject jsonObject = null; + Log.i(TAG,"doWork:"+str[0]+": "+str[1]); try { jsonObject = new JSONObject(str[1]); switch (str[0]) { diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java index e0428c1..31d00e6 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigDao.java @@ -18,6 +18,8 @@ @Update void update(RTKConfig rtkConfig); + @Query("Update rtkconfig_table SET sn=:sn ,imei=:imei ,phone=:phone where _id =0") + void update(String sn,String imei,String phone); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt new file mode 100644 index 0000000..dc043ef --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt @@ -0,0 +1,38 @@ +package safeluck.drive.evaluation.DB.rtktb + +import android.content.Context +import android.text.TextUtils +import android.util.Log +import androidx.work.Worker +import androidx.work.WorkerParameters +import org.json.JSONObject +import safeluck.drive.evaluation.DB.Constant +import safeluck.drive.evaluation.DB.WorkRoomDataBase + +class RTKConfigUpdateWorker(context:Context, workerParams: WorkerParameters) :Worker(context, workerParams){ + + val TAG:String = "RTKConfigUpdateWorker" + + override fun doWork(): Result { + + var data = inputData.getString(Constant.RTK_CONFIG_UPDATE_JSON) + Log.i(TAG,"鏇存柊RTK_config imei phone sn="+data) + var imei:String="" + var phone:String="" + var sn:String="" + if (!TextUtils.isEmpty(data)){ + var jsonObject: JSONObject? = null + jsonObject = JSONObject(data) + sn = jsonObject.getString(Constant.RTK_CONFIG_SN) + Log.i(TAG,"sn="+sn) + imei = sn + phone = sn + } + var rtkConfigDao = WorkRoomDataBase.getWorkRoomDataBase(applicationContext).rtkConfigDao.also { + it.update(sn, imei, phone) + } + return Result.success() + } + + +} \ No newline at end of file diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java index 9928694..d446233 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigWork.java @@ -1,6 +1,7 @@ package safeluck.drive.evaluation.DB.rtktb; import android.content.Context; +import android.util.Log; import androidx.annotation.NonNull; import androidx.work.Worker; @@ -31,6 +32,7 @@ @NonNull @Override public Result doWork() { + try { InputStream inputStream = getApplicationContext().getAssets().open(Constant.RTK_CONFIG_JSON); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index bc58479..049ab64 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -10,6 +10,8 @@ import android.text.TextUtils; import android.util.Log; +import android.view.Window; +import android.view.WindowManager; import android.widget.Toast; @@ -156,7 +158,8 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //鍏ㄥ睆 - + requestWindowFeature(Window.FEATURE_NO_TITLE); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); // TODO // 杩涜tcp杩炴帴 @@ -324,11 +327,13 @@ @Override public void onConnecting() { + MyLog.i(TAG,"TCP onConnecting"); } @Override public void onConnected() { + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.TCP_CONNECTED); MyLog.i(TAG,"TCP杩炴帴鎴愬姛"); //TODO 鍒ゆ柇SPUtils 鏄惁淇濆瓨鏈塪es瀵嗙爜锛涘鏋滄病鏈夊垯杩涜娉ㄥ唽JKMessage0100锛屽鏋滄湁瀵嗙爜鍒欒繘琛岄壌鏉僇KMessage0101 String hexPwd = (String) SPUtils.get(this,SPUtils.DES_HEX_PWD,""); @@ -356,6 +361,7 @@ @Override public void onConnectFailed() { + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.TCP_DISCONNECT); MyLog.i(TAG,"TCP杩炴帴澶辫触"); } diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 546250e..c57c2e7 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -46,6 +46,7 @@ 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.RTKConfigUpdateWorker; import safeluck.drive.evaluation.DB.rtktb.RTKWorkRepository; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.cEventCenter.CEvent; @@ -140,6 +141,7 @@ } private String lastStr; + private String lastSn; @Override public void callBackMsg(final int cmd, String json) { String strConent = String.format("鏀跺埌鍛戒护[%d],Json鍐呭涓�%s", cmd, json); @@ -264,6 +266,22 @@ CEventCenter.dispatchEvent(Constant.BIND_DEBUG_TXT,cmd,0,json); break; case Constant.MCU_SN: + String sn = null; + try { + JSONObject rtkConfigUpdtea = new JSONObject(json); + sn = rtkConfigUpdtea.getString("sn"); + sn = rtkConfigUpdtea.put(safeluck.drive.evaluation.DB.Constant.RTK_CONFIG_SN,sn).toString(); + } catch (JSONException e) { + e.printStackTrace(); + } + if (sn.equalsIgnoreCase(lastSn)){ + + }else{ + lastSn = sn; + Data data = new Data.Builder().putString(safeluck.drive.evaluation.DB.Constant.RTK_CONFIG_UPDATE_JSON,sn).build(); + OneTimeWorkRequest rtkConfigUpdateWorker= new OneTimeWorkRequest.Builder(RTKConfigUpdateWorker.class).setInputData(data).build(); + WorkManager.getInstance(getAppContext()).enqueue(rtkConfigUpdateWorker); + } CEventCenter.dispatchEvent(Constant.BIND_MCUINFO_TOPIC,cmd,0,json); break; case Constant.IC_ID: @@ -277,7 +295,6 @@ double longitude = jsSpeed.getDouble("longitude"); double altitude = jsSpeed.getDouble("altitude"); double speed = jsSpeed.getDouble("speed"); - Log.i(TAG, "RTK info speed: "+speed); int qf = jsSpeed.getInt("qf"); double track_ture = jsSpeed.getDouble("track_ture"); String utc = jsSpeed.getString("utc"); @@ -298,9 +315,7 @@ 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{ @@ -309,7 +324,6 @@ } jkMessage0206.attachInfo = attachInfo; - Log.i(TAG, "浣嶇疆涓婃姤="+jkMessage0206.toString()); MessageProcessor.getInstance().sendMessage(jkMessage0206); } catch (JSONException e) { 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 af9c2d0..ad36189 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -5,11 +5,17 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.ViewModelProviders; +import androidx.work.Data; +import androidx.work.OneTimeWorkRequest; +import androidx.work.WorkManager; import com.anyun.exam.lib.MyLog; +import java.util.HashMap; import java.util.Random; +import safeluck.drive.evaluation.Constant; +import safeluck.drive.evaluation.DB.appstatusdb.AppStatusWorker; import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.viewmodels.ExamPlatformModel; @@ -19,6 +25,26 @@ private static final ExamPlatformData ourInstance = new ExamPlatformData(); private int exam_id =12345;//鑰冭瘯鍞竴ID + + public static final int TCP_DISCONNECT = 1; + public static final int TCP_CONNECTED = 2;///2-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛� + public static final int DEV_NOT_REGISTERED = 3; + public static final int DEV_REGISTERED = 4; + public static final int DEV_NOT_LOGIN = 5; + public static final int DEV_LOGIN = 6; + private static HashMap<Integer,String> examPlatformStrs = new HashMap<>(); + static { + examPlatformStrs.put(TCP_DISCONNECT,"鏈繛鎺�"); + examPlatformStrs.put(TCP_CONNECTED,"宸茶繛鎺�"); + examPlatformStrs.put(DEV_NOT_REGISTERED,"鏈敞鍐�"); + examPlatformStrs.put(DEV_REGISTERED,"宸叉敞鍐�"); + examPlatformStrs.put(DEV_NOT_LOGIN,"鏈櫥褰�"); + examPlatformStrs.put(DEV_LOGIN,"宸茬櫥褰�"); + } + private static final String WORK_PLATFORM_STATUS = " work_platform"; + + + private int examplatformStatus =1;//1-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛� 3-鏈敞鍐岋紙璁惧娌℃湁娉ㄥ唽锛� 5-鏈櫥褰曪紙閴存潈鏈�氳繃锛� private String id;//韬唤璇� @@ -115,4 +141,25 @@ carPath = (String) SPUtils.get(app.getAppContext(),SPUtils.CAR_PATH,""); return carPath; } + + public int getExamplatformStatus() { + return examplatformStatus; + } + + public void setExamplatformStatus(int examplatformStatus) { + String[] conn_strs = new String[2]; + conn_strs[0] = Constant.WORK_PLATFORM_STATUS_COLUMN; + conn_strs[1] = "{"+WORK_PLATFORM_STATUS+":"+examplatformStatus+"}"; + //RTK骞冲彴杩炴帴鐘舵�� + Data connStatusData = new Data.Builder().putStringArray(Constant.APP_STATUS,conn_strs).build(); + OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(AppStatusWorker.class). + setInputData(connStatusData).build(); + WorkManager.getInstance(app.getAppContext()).enqueue(oneTimeWorkRequest); + this.examplatformStatus = examplatformStatus; + } + + public String getExamplatformStatusStr(int work_platform) { + + return examPlatformStrs.get(work_platform); + } } 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 731f010..b3e967a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java @@ -204,6 +204,6 @@ @Override public void onDetach() { super.onDetach(); - CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC); + CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC); } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java index 6fafe5d..375615e 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/InspectSignalFragment.java @@ -16,6 +16,7 @@ import androidx.appcompat.widget.Toolbar; import androidx.databinding.DataBindingUtil; +import com.anyun.exam.lib.MyLog; import com.anyun.im_lib.util.ByteUtil; import com.google.gson.Gson; @@ -46,49 +47,55 @@ private TextView textView_turnLight,tv_speed,tv_engine; private Toolbar toolbar; private Gson gson= new Gson(); + private Handler handler = new Handler(); private LayoutCheckSignalBinding bingding; private List<Integer> gpios = new ArrayList<>(); Drawable leftGreen ; Drawable leftGray ; + private int index =0 ; private ICEventListener icEventListener = new ICEventListener() { @Override public void onCEvent(String topic, int msgCode, int resultCode, Object obj) { if (msgCode==Constant.MCU_SN){ final MCUInfo mcuInfo = gson.fromJson((String)obj, MCUInfo.class); if (mcuInfo != null){ - bingding.getRoot().post(new Runnable() { - @Override - public void run() { - + gpios.clear(); for (int i = 0; i < 16; i++) { + gpios.add( ByteUtil.getBitStatus(mcuInfo.getGpio(),i)); } + MyLog.i("mcu info gpio"+mcuInfo.getGpio()); - bingding.tvRoateSpeed.setText(String.valueOf(mcuInfo.getEngine())); - bingding.tvDangweiNum.setText(String.valueOf(mcuInfo.getSpeed())); + handler.post(new Runnable() { + @Override + public void run() { + bingding.tvRoateSpeed.setText(String.valueOf(mcuInfo.getEngine())); + bingding.tvDangweiNum.setText(String.valueOf(mcuInfo.getSpeed())); + for (int i = 0; i < gpios.size(); i++) { + Log.i(TAG, "run: gpio["+i+"]="+gpios.get(i)); + } + bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(0)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvSeatBelt.setCompoundDrawablesWithIntrinsicBounds(gpios.get(0)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvTrunLeft.setCompoundDrawablesWithIntrinsicBounds(gpios.get(1)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvTurnRight.setCompoundDrawablesWithIntrinsicBounds(gpios.get(2)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvParkingBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(3)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvFootBrake.setCompoundDrawablesWithIntrinsicBounds(gpios.get(4)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvLowLamp.setCompoundDrawablesWithIntrinsicBounds(gpios.get(5)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvHighBeam.setCompoundDrawablesWithIntrinsicBounds(gpios.get(6)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - - bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null); - bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGateLock.setCompoundDrawablesWithIntrinsicBounds(gpios.get(7)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvNullEngine.setCompoundDrawablesWithIntrinsicBounds(gpios.get(8)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGearOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(9)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGearTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(10)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGearThree.setCompoundDrawablesWithIntrinsicBounds(gpios.get(11)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGearFour.setCompoundDrawablesWithIntrinsicBounds(gpios.get(12)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvGearFive.setCompoundDrawablesWithIntrinsicBounds(gpios.get(13)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvWindingOne.setCompoundDrawablesWithIntrinsicBounds(gpios.get(14)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + bingding.inpsetSignalSlice.tvWindingTwo.setCompoundDrawablesWithIntrinsicBounds(gpios.get(15)==VALIAD_NUM?leftGreen:leftGray,null,null,null); + } + }); } - }); } - } } }; @@ -132,6 +139,6 @@ @Override public void onDetach() { super.onDetach(); - CEventCenter.onBindEvent(true,icEventListener,Constant.BIND_MCUINFO_TOPIC); + CEventCenter.onBindEvent(false,icEventListener,Constant.BIND_MCUINFO_TOPIC); } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java index a1c215b..1ee38f5 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/MapFragment.java @@ -8,6 +8,7 @@ import android.graphics.Path; import android.os.Bundle; import android.os.Handler; +import android.text.TextUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.SurfaceHolder; @@ -21,6 +22,7 @@ import androidx.appcompat.widget.Toolbar; +import com.anyun.exam.lib.AYSdk; import com.anyun.exam.lib.MyLog; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -42,6 +44,7 @@ import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.bean.ExamMap; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.RealTimeCarPos; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; @@ -284,7 +287,7 @@ paint.setColor(Color.BLACK); Path path = new Path(); - + Log.i(TAG, "DrawMap: map.length:"+map.length); if (map.length != 9) { Log.d(TAG, "DrawMap X = " + String.format("%f", (float) (base_x + (map[0][0] - min_x) * scale_x)) + " Y = " + String.format("%f", (float) (base_y + (map[0][1] - min_y) * scale_y))); path.moveTo((float) (base_x + (map[0][0] - min_x) * scale_x), (float) (base_y + (map[0][1] - min_y) * scale_y)); @@ -312,8 +315,10 @@ canvas2.drawPath(path, paint); path.moveTo((float) (base_x + (car[body.get(0)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(0)][1] - min_y) * scale_y)); - for (int i = 1; i < body.size(); i++) + for (int i = 1; i < body.size(); i++){ + Log.d(TAG, "for 寰幆 DrawMap to X = " + (float) (base_x + (car[body.get(i)][0] - min_x) * scale_x)+ " Y = " + (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y)); path.lineTo((float) (base_x + (car[body.get(i)][0] - min_x) * scale_x), (float) (base_y + (car[body.get(i)][1] - min_y) * scale_y)); + } path.close(); @@ -481,12 +486,29 @@ // 3 - 渚ф柟鍋滆溅 // 4 - 鏇茬嚎琛岄┒ // 5 - 鐩磋杞集 + StringBuffer buffer=null; + List<ExamMap> examMaps; + String newmap = null; + String mapPath = ExamPlatformData.getInstance().getMapPath(); + if (!TextUtils.isEmpty(mapPath)){ + MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘"+mapPath); + byte[] fileContent = FileUtil.readFile(mapPath); + if (fileContent != null){ + newmap= new String(fileContent); + Log.i(TAG, "鏂囦欢鍐呭锛�"+newmap); + }else{ + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�",mapPath)); + } + }else{ + buffer = FileUtil.readAssetTxtFile(_mActivity,Constant.MAP); + } - - StringBuffer buffer = FileUtil.readAssetTxtFile(_mActivity,Constant.MAP); Type type = new TypeToken<List<ExamMap>>(){}.getType(); if (buffer != null){ - List<ExamMap> examMaps = gson.fromJson(buffer.toString().trim(), type); + examMaps= gson.fromJson(buffer.toString().trim(), type); + }else{ + examMaps = gson.fromJson(newmap.trim(),type); + } @@ -519,7 +541,7 @@ break; } } - } + DrawMap(mainAnt, map, car, body, tire); } } 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 93c7f01..2da26bd 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -83,7 +83,7 @@ private int item_id;//鎵e垎鍒嗘暟鎬诲拰 private ExamStatusViewModel examStatusViewModel; private static final int ADD_DATA = 1; - private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id; + private TextView tv_speed,tv_total_score,tv_sat_num,tv_name,tv_id,tv_work_platform; private double speed=0.0; private ImageView iv_rtk_status,iv_head; @@ -229,6 +229,7 @@ if (appStatus != null){ Log.i(TAG, "onChanged: "+appStatus.toString()); iv_rtk_status.getDrawable().setLevel(appStatus.getRtk_connect_status()); + tv_work_platform.setText(getString(R.string.platform_status,ExamPlatformData.getInstance().getExamplatformStatusStr(appStatus.getWork_platform()))); tv_sat_num.setText(String.valueOf(appStatus.getDefault_observe1()).length()==1?"0"+appStatus.getDefault_observe1():String.valueOf(appStatus.getDefault_observe1())); } } @@ -341,6 +342,7 @@ houseView = view.findViewById(R.id.hv); tv_name = view.findViewById(R.id.tv_name); tv_id = view.findViewById(R.id.tv_ID); + tv_work_platform = view.findViewById(R.id.platform); iv_rtk_status = view.findViewById(R.id.iv_rtk_connect); iv_head = view.findViewById(R.id.iv_head); diff --git a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java index 2874640..4be28e9 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/IMSEventListener.java @@ -1,7 +1,13 @@ package safeluck.drive.evaluation.im; +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; + +import com.anyun.exam.lib.MyLog; import com.anyun.im_lib.listener.OnEventListener; +import safeluck.drive.evaluation.app; import safeluck.drive.evaluation.platformMessage.JKMessage0002; import safeluck.drive.evaluation.platformMessage.utils.MessageEscaper; @@ -29,7 +35,10 @@ @Override public boolean isNetWorkAvailable() { - return true; + ConnectivityManager connectivityManager = (ConnectivityManager) app.getAppContext().getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); + MyLog.i("IsNetworkAvaliable"+networkInfo!=null&&networkInfo.isConnected()); + return networkInfo!=null&&networkInfo.isConnected(); } /** 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 3cf3798..68e5b1f 100644 --- a/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java +++ b/app/src/main/java/safeluck/drive/evaluation/im/MessageProcessor.java @@ -19,6 +19,7 @@ import safeluck.drive.evaluation.Constant; import safeluck.drive.evaluation.DB.StudentInfoUpdateWork; import safeluck.drive.evaluation.app; +import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.platformMessage.JK2019MessageBase; import safeluck.drive.evaluation.platformMessage.JKMessage0001; import safeluck.drive.evaluation.platformMessage.JKMessage0100; @@ -73,12 +74,18 @@ JKMessage0101 jkMessage0101 = new JKMessage0101(); jkMessage0101.des =((JKMessage8100) jk2019MessageBase).des; jkMessage0101.timestamp = (int) System.currentTimeMillis(); + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED); + }else{ + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_REGISTERED); } }else if (jk2019MessageBase instanceof JKMessage8001){ JKMessage8001 jkMessage8001 = (JKMessage8001) jk2019MessageBase; String hexMessageId = jkMessage8001.respMessageId; if (hexMessageId.equalsIgnoreCase("0101")){ MyLog.i(PlatFormConstant.TAG,"閴存潈鎴愬姛"); + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_LOGIN); + }else{ + ExamPlatformData.getInstance().setExamplatformStatus(ExamPlatformData.DEV_NOT_LOGIN); } }else if (jk2019MessageBase instanceof JKMessage8201){ JKMessage8201 jkMessage8201 = (JKMessage8201) jk2019MessageBase; diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java index 7a0bf74..b8723e1 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/JK2019MessageBase.java @@ -69,7 +69,7 @@ } //璁$畻娑堟伅浣撻暱搴� String hex = super.toString(); - Log.i(PlatFormConstant.TAG, "toString: 娑堟伅浣撻暱搴︼細"+hex); +// Log.i(PlatFormConstant.TAG, "toString: 娑堟伅浣撻暱搴︼細"+hex); int message_head_len = 19; if(this.isMultiPacket()) { diff --git a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java index 184a749..81f86ac 100644 --- a/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java +++ b/app/src/main/java/safeluck/drive/evaluation/platformMessage/decoder/PhoneCoder.java @@ -16,7 +16,6 @@ @Override public String encode(String str) { - Log.i(TAG, "encode: "+str); if(str==null||"".equalsIgnoreCase(str)) { // str ="00000000000"; diff --git a/app/src/main/res/drawable/antenna.png b/app/src/main/res/drawable/antenna.png index 8a96dfc..dc19910 100644 --- a/app/src/main/res/drawable/antenna.png +++ b/app/src/main/res/drawable/antenna.png Binary files differ diff --git a/app/src/main/res/drawable/antenna_red.png b/app/src/main/res/drawable/antenna_red.png index 88d8282..b39d956 100644 --- a/app/src/main/res/drawable/antenna_red.png +++ b/app/src/main/res/drawable/antenna_red.png Binary files differ diff --git a/app/src/main/res/drawable/gps.png b/app/src/main/res/drawable/gps.png index 7c9333a..444804c 100644 --- a/app/src/main/res/drawable/gps.png +++ b/app/src/main/res/drawable/gps.png Binary files differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 6f8b170..96d9db5 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,6 +6,7 @@ android:layout_height="match_parent" tools:context=".MainActivity"> + <FrameLayout android:id="@+id/fl_container" android:layout_width="match_parent" diff --git a/app/src/main/res/layout/layout_net_train.xml b/app/src/main/res/layout/layout_net_train.xml index 152bb34..4cf1317 100644 --- a/app/src/main/res/layout/layout_net_train.xml +++ b/app/src/main/res/layout/layout_net_train.xml @@ -5,7 +5,10 @@ android:layout_width="0dp" android:layout_weight="4" android:layout_height="match_parent" - android:padding="5dp" + android:paddingTop="2dp" + android:paddingBottom="2dp" + android:paddingLeft="5dp" + android:paddingRight="5dp" android:gravity="center" android:orientation="vertical" android:background="@color/train_bg" diff --git a/app/src/main/res/layout/layout_train_fragment.xml b/app/src/main/res/layout/layout_train_fragment.xml index 8489c27..fba737e 100644 --- a/app/src/main/res/layout/layout_train_fragment.xml +++ b/app/src/main/res/layout/layout_train_fragment.xml @@ -1,23 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> -<ScrollView +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@color/home_bg_color"> - +<include layout="@layout/networktoolbar"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll" android:orientation="vertical"> - <include android:layout_marginBottom="10dp" android:layout_width="match_parent" android:layout_height="120dp" android:id="@+id/profile" layout="@layout/profile_layout"/> - <include android:layout_marginBottom="10dp" android:layout_width="match_parent" android:layout_height="170dp" layout="@layout/layout_net_train"/> + <include android:layout_marginBottom="2dp" android:layout_width="match_parent" android:layout_height="110dp" android:id="@+id/profile" layout="@layout/profile_layout"/> + <include android:layout_marginBottom="2dp" android:layout_width="match_parent" android:layout_height="140dp" layout="@layout/layout_net_train"/> - <include android:layout_marginBottom="10dp" android:layout_width="match_parent" android:layout_height="240dp" layout="@layout/layout_stu_score"/> + <include android:layout_marginBottom="2dp" android:layout_width="match_parent" android:layout_height="match_parent" layout="@layout/layout_stu_score"/> </LinearLayout> -</ScrollView> \ No newline at end of file +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/networktoolbar.xml b/app/src/main/res/layout/networktoolbar.xml new file mode 100644 index 0000000..fa052e0 --- /dev/null +++ b/app/src/main/res/layout/networktoolbar.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<layout> + <com.google.android.material.appbar.AppBarLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:theme="@style/AppTheme.AppBarOverlay"> + + <androidx.appcompat.widget.Toolbar + android:id="@+id/toolbar" + android:layout_width="match_parent" + android:layout_height="@dimen/actionbarsizehalf" + android:background="?attr/colorPrimary" + android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" + app:popupTheme="@style/AppTheme.NoActionBar.PopupOverlay" + app:titleTextAppearance="@style/Toolbar_TextAppearance_White"> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="02" + android:gravity="center" + android:drawableLeft="@drawable/gps" + android:textColor="@android:color/white" /> + <ImageView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/iv_rtk_connect" + android:layout_marginLeft="50dp" + android:src="@drawable/antennaxml"/> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center" + android:id="@+id/network_time" + android:singleLine="true" + android:textColor="@android:color/white" + android:text="12:34:33"/> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/platform" + android:singleLine="true" + android:layout_gravity="end" + android:textColor="@android:color/white" + android:text="@string/platform_status"/> + </androidx.appcompat.widget.Toolbar> + </com.google.android.material.appbar.AppBarLayout> +</layout> diff --git a/app/src/main/res/layout/profile_layout.xml b/app/src/main/res/layout/profile_layout.xml index 54dd779..c6cac4f 100644 --- a/app/src/main/res/layout/profile_layout.xml +++ b/app/src/main/res/layout/profile_layout.xml @@ -124,6 +124,7 @@ </LinearLayout> <RelativeLayout + android:visibility="gone" android:layout_width="0dp" android:layout_height="90dp" android:layout_marginLeft="10dp" diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index e2f7b21..f4c539b 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -1,4 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="bottombar_height">0dp</dimen> + <dimen name="actionbarsizehalf">28dp</dimen> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9adfd76..f46b305 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -34,4 +34,5 @@ <string name="mcu_info">鍗忓鐞嗗櫒淇℃伅锛�</string> <string name="chesu">杞﹂�燂細</string> <string name="engine">杞�燂細</string> + <string name="platform_status">鑰冭瘯骞冲彴锛�%1$s</string> </resources> diff --git a/build.gradle b/build.gradle index 7c33808..a9e1add 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { + ext.kotlin_version = '1.3.70' repositories { google() jcenter() @@ -12,8 +13,9 @@ lifecycleVersion = '2.1.0' } dependencies { - classpath 'com.android.tools.build:gradle:3.4.0' - + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } diff --git a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java index a94be4a..8c9d9d4 100644 --- a/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java +++ b/im_lib/src/main/java/com/anyun/im_lib/netty/NettyTcpClient.java @@ -333,6 +333,7 @@ if (channel == null){ MyLog.i("PlatformMessage", "sendMsg fail,channel涓虹┖"+msg); + return; } try { MyLog.i("PlatformMessage", "sendMsg: "+ BytesUtils.bytesToHexString(msg)); diff --git a/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java b/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java index 2270531..233d66a 100644 --- a/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java +++ b/im_lib/src/main/java/com/safeluck/aykj/utils/ArrayUtils.java @@ -9,7 +9,6 @@ public static byte[] subArray(byte[] srcBytes, int begin, int length) { byte[] bytes = new byte[length]; System.arraycopy(srcBytes,begin,bytes,0,length); - Log.i("ArrayUtils", "subArray: "+byte2HexStr(bytes)); return bytes; } } diff --git a/lib/src/main/cpp/test_items/driving_curve.cpp b/lib/src/main/cpp/test_items/driving_curve.cpp index 3a3cd49..a2bd5d0 100644 --- a/lib/src/main/cpp/test_items/driving_curve.cpp +++ b/lib/src/main/cpp/test_items/driving_curve.cpp @@ -9,6 +9,7 @@ #include "../utils/xconvert.h" #include <vector> +#include <cstdlib> using namespace std; -- Gitblit v1.8.0