diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 0d156937bb..663459aa50 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -3,18 +3,9 @@
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 21e99e2dc0..cd77a1f062 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -4,7 +4,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 478aa6f23f..27bbdffabf 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -80,7 +80,9 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor"));
MogoModulePaths.addModule( new MogoModule( V2XConst.PATH_EVENT_PANEL, V2XConst.MODULE_NAME_EVENT_PANEL ) );
MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) );
-
+// 碰撞报警模块
+ MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING,
+ "CrashWarning"));
if ( !DebugConfig.isLauncher() ) {
PersistentManager.getInstance().initManager( this );
Intent intent = new Intent( this, MogoMainService.class );
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index 827f9320e1..1d3bffc49c 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -1,6 +1,5 @@
package com.mogo.module.extensions.entrance;
-import android.content.Context;
import android.content.Intent;
import android.graphics.Rect;
import android.os.Bundle;
@@ -9,7 +8,7 @@ import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.FrameLayout;
+import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
@@ -60,8 +59,10 @@ import com.mogo.utils.ResourcesHelper;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.glide.GlideApp;
import com.mogo.utils.logger.Logger;
+import com.zhidao.manager.ts.TsThreshold;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import java.util.Random;
@@ -119,6 +120,11 @@ public class EntranceFragment extends MvpFragment {
+ thresholdSetContainer.setVisibility(View.GONE);
+ mApis.getAdasControllerApi().showADAS();
+ });
+ mUploadRoadCondition.setOnLongClickListener(v -> {
+ mApis.getAdasControllerApi().closeADAS();
+ thresholdSetContainer.setVisibility(View.VISIBLE);
+ TsThreshold threshold = mApis.getCrashWarnProvider().getCurrentCrashThreshold();
+ topEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC5()));
+ topEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS5()));
+ bottomEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC6()));
+ bottomEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS6()));
+ frontLeftEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC4()));
+ frontLeftEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS4()));
+ backLeftEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC3()));
+ backLeftEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS3()));
+ frontRightEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC1()));
+ frontRightEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS1()));
+ backRightEditC.setText(String.format(Locale.CHINA, "%d", threshold.getC2()));
+ backRightEditS.setText(String.format(Locale.CHINA, "%d", threshold.getS2()));
+ return true;
+ });
+ findViewById(R.id.btnSet).setOnClickListener(view -> {
+ // 设置阈值
+ TsThreshold threshold = new TsThreshold(
+ Integer.parseInt(frontRightEditC.getText().toString()),
+ Integer.parseInt(frontRightEditS.getText().toString()),
+ Integer.parseInt(backRightEditC.getText().toString()),
+ Integer.parseInt(backRightEditS.getText().toString()),
+ Integer.parseInt(backLeftEditC.getText().toString()),
+ Integer.parseInt(backLeftEditS.getText().toString()),
+ Integer.parseInt(frontLeftEditC.getText().toString()),
+ Integer.parseInt(frontLeftEditS.getText().toString()),
+ Integer.parseInt(topEditC.getText().toString()),
+ Integer.parseInt(topEditS.getText().toString()),
+ Integer.parseInt(bottomEditC.getText().toString()),
+ Integer.parseInt(bottomEditS.getText().toString())
+ );
+ mApis.getCrashWarnProvider().setCrashThreshold(threshold);
+ thresholdSetContainer.setVisibility(View.GONE);
+ mApis.getAdasControllerApi().showADAS();
+ });
}
public void showShareDialog() {
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_crash_threshold_set.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_crash_threshold_set.xml
new file mode 100644
index 0000000000..1ce622b331
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_crash_threshold_set.xml
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
index 495a892b37..792ad0305f 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml
@@ -217,4 +217,6 @@
android:visibility="gone"
app:constraint_referenced_ids="btnDebugCtrlNaviView,btnDebugCtrlSubView,btnDebugCtrlTopView,btnDebugAddBottomLayerView" />
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-obu/build.gradle b/modules/mogo-module-obu/build.gradle
index 686c4021e0..b48130dc8d 100644
--- a/modules/mogo-module-obu/build.gradle
+++ b/modules/mogo-module-obu/build.gradle
@@ -39,7 +39,6 @@ dependencies {
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxjava
implementation rootProject.ext.dependencies.rxandroid
-
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.modulecommon
} else {
diff --git a/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/ObuManager.kt b/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/ObuManager.kt
index 08403ac718..cbdf5c3b90 100644
--- a/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/ObuManager.kt
+++ b/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/ObuManager.kt
@@ -39,22 +39,6 @@ class ObuManager: IMogoObuManager,Handler.Callback {
private var handler = Handler(Looper.getMainLooper(), this)
- override fun getNaviListener(): IMogoNaviListener? {
- return null
- }
-
- override fun getLocationListener(): IMogoLocationListener? {
- return null
- }
-
- override fun getType(): Int {
- return 0
- }
-
- override fun getMarkerClickListener(): IMogoMarkerClickListener? {
- return null
- }
-
override fun init(context: Context) {
Logger.d(TAG,"init=======")
if (DebugConfig.isUseMockObuData()) {
@@ -68,34 +52,6 @@ class ObuManager: IMogoObuManager,Handler.Callback {
}
}
- override fun getMapListener(): IMogoMapListener? {
- return null
- }
-
- override fun getAppPackage(): String {
- return ""
- }
-
- override fun createView(context: Context?): View? {
- return null
- }
-
- override fun createFragment(context: Context?, data: Bundle?): Fragment? {
- return null
- }
-
- override fun getModuleName(): String {
- return "moduleObu"
- }
-
- override fun getAppName(): String {
- return ""
- }
-
- override fun getCardLifecycle(): IMogoModuleLifecycle? {
- return null
- }
-
override fun registerObuDataChangedListener(listener: IMogoObuDataChangedListener?) {
this.dataChangedListener = listener
}
diff --git a/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/crashwarn/CrashWarningProvider.kt b/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/crashwarn/CrashWarningProvider.kt
new file mode 100644
index 0000000000..761b28c063
--- /dev/null
+++ b/modules/mogo-module-obu/src/main/java/com/zhidao/mogo/module/obu/crashwarn/CrashWarningProvider.kt
@@ -0,0 +1,78 @@
+package com.zhidao.mogo.module.obu.crashwarn
+
+import android.content.Context
+import android.content.Intent
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.obu.IMogoCrashWarnProvider
+import com.mogo.utils.logger.Logger
+import com.zhidao.manager.constent.Common
+import com.zhidao.manager.power.ZDPowerManager
+import com.zhidao.manager.ts.TsSensorChannel
+import com.zhidao.manager.ts.TsThreshold
+
+/**
+ * 碰撞报警provider
+ *
+ * @author tongchenfei
+ */
+@Route(path = MogoServicePaths.PATH_CRASH_WARNING)
+class CrashWarningProvider:IMogoCrashWarnProvider {
+ companion object{
+ const val TAG = "CrashWarningProvider"
+ }
+
+ val crashThreshold = TsThreshold(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
+
+ override fun setCrashThreshold(threshold: TsThreshold?) {
+ ZDPowerManager.getInstance().setTsThreshold(threshold)
+ }
+
+ override fun getCurrentCrashThreshold(): TsThreshold = crashThreshold
+
+ override fun init(context: Context) {
+ Logger.d(TAG, "init---->")
+ ZDPowerManager.getInstance().setTsBoxStatusListener(object : ZDPowerManager.TsBoxStatusListener{
+ override fun onBoxSelfCheckChanged(p0: TsSensorChannel?) {
+ }
+
+ override fun onBoxThresholdChanged(threshold: TsThreshold?) {
+ threshold?.let {
+ Logger.d(TAG, "获取到当前阈值: $threshold")
+ crashThreshold.copy(threshold)
+ }
+ }
+
+ override fun onTimeChanged(p0: Int, p1: Int, p2: Int, p3: Int, p4: Int, p5: Int) {
+ }
+
+ override fun onVersionChanged(p0: String?) {
+ }
+
+ override fun onBoxSwitchChanged(p0: Int, p1: Int, p2: Int, p3: Int) {
+ }
+ /**
+ * 碰撞报警事件
+ * @param position 碰撞位置 1:右前车门,2:右后车门,3:左后车门,4:左前车门,5:前保险杠,6:后保险杠
+ * @param levelH 高力度级数(1--5)
+ * @param levelL 低力度级数 (1--5)
+ */
+ override fun onAlarmChanged(position: Int, levelH: Int, levelL: Int) {
+ // 发送广播通知adas
+ Logger.d(TAG, "碰撞事件报警------ position: $position, levelH: $levelH,levelL: $levelL")
+ val intent = Intent("com.mogo.launcher.action.CRASH_WARNING")
+ intent.putExtra("position", position)
+ intent.putExtra("levelH", levelH)
+ intent.putExtra("levelL", levelL)
+ context.sendBroadcast(intent)
+ }
+
+ override fun onSerialNumChanged(p0: String?) {
+ }
+
+ })
+
+ val getThresholdResult = ZDPowerManager.getInstance().tsBoxStatus
+ Logger.d(TAG, "获取当前碰撞阈值: $getThresholdResult")
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-search/build.gradle b/modules/mogo-module-search/build.gradle
index b5b990719a..8556f7c897 100644
--- a/modules/mogo-module-search/build.gradle
+++ b/modules/mogo-module-search/build.gradle
@@ -37,7 +37,7 @@ android {
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
+// implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.androidxconstraintlayout
diff --git a/services/mogo-service-api/build.gradle b/services/mogo-service-api/build.gradle
index 2f30b30043..accd358d86 100644
--- a/services/mogo-service-api/build.gradle
+++ b/services/mogo-service-api/build.gradle
@@ -42,6 +42,7 @@ dependencies {
annotationProcessor rootProject.ext.dependencies.aroutercompiler
api rootProject.ext.dependencies.fresco
api rootProject.ext.dependencies.obusdk
+ api 'com.mogo.module:module-crash-warning:1'
if (Boolean.valueOf(RELEASE)) {
implementation rootProject.ext.dependencies.mogomapapi
} else {
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
index b349d857ce..1d9a8a097a 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java
@@ -25,6 +25,7 @@ import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.monitor.IMogoMonitorProvider;
import com.mogo.service.network.IMogoNetwork;
+import com.mogo.service.obu.IMogoCrashWarnProvider;
import com.mogo.service.obu.IMogoObuManager;
import com.mogo.service.passport.IMogoPassportManager;
import com.mogo.service.share.IMogoShareManager;
@@ -257,4 +258,10 @@ public interface IMogoServiceApis extends IProvider {
* @return
*/
IMogoMonitorProvider getMogoMonitorApi();
+
+ /**
+ * 获取crashWarnProvider
+ * @return
+ */
+ IMogoCrashWarnProvider getCrashWarnProvider();
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
index f5a78c3c34..b7ded53909 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
@@ -244,4 +244,10 @@ public class MogoServicePaths {
*/
@Deprecated
public static final String PATH_STRATEGY_SHARE = "/share/strategy";
+
+ /**
+ * 碰撞报警模块
+ */
+ @Deprecated
+ public static final String PATH_CRASH_WARNING = "/crash/warning";
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoCrashWarnProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoCrashWarnProvider.java
new file mode 100644
index 0000000000..b09de9723e
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoCrashWarnProvider.java
@@ -0,0 +1,22 @@
+package com.mogo.service.obu;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+import com.zhidao.manager.ts.TsThreshold;
+
+/**
+ * 碰撞报警相关接口
+ * @author tongchenfei
+ */
+public interface IMogoCrashWarnProvider extends IProvider {
+ /**
+ * 设置碰撞碰撞报警阈值
+ * @param threshold
+ */
+ void setCrashThreshold(TsThreshold threshold);
+
+ /**
+ * 获取当前碰撞报警阈值
+ * @return
+ */
+ TsThreshold getCurrentCrashThreshold();
+}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoObuManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoObuManager.java
index 21c5fc6c01..9bbfba60d3 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoObuManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/obu/IMogoObuManager.java
@@ -1,12 +1,12 @@
package com.mogo.service.obu;
-import com.mogo.service.module.IMogoModuleProvider;
+import com.alibaba.android.arouter.facade.template.IProvider;
import com.zhidao.smartv2x.listener.OnMessageReceiveListener;
/**
* obu事件管理器
* @author tongchenfei
*/
-public interface IMogoObuManager extends IMogoModuleProvider, OnMessageReceiveListener{
+public interface IMogoObuManager extends IProvider, OnMessageReceiveListener{
void registerObuDataChangedListener(IMogoObuDataChangedListener listener);
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
index 08b9f47901..d2e819512b 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java
@@ -33,6 +33,7 @@ import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.module.IMogoSettingManager;
import com.mogo.service.monitor.IMogoMonitorProvider;
import com.mogo.service.network.IMogoNetwork;
+import com.mogo.service.obu.IMogoCrashWarnProvider;
import com.mogo.service.obu.IMogoObuManager;
import com.mogo.service.passport.IMogoPassportManager;
import com.mogo.service.share.IMogoShareManager;
@@ -218,6 +219,11 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance(IMogoMonitorProvider.class,MogoServicePaths.PATH_MOGO_MONITOR);
}
+ @Override
+ public IMogoCrashWarnProvider getCrashWarnProvider() {
+ return getApiInstance(IMogoCrashWarnProvider.class, MogoServicePaths.PATH_CRASH_WARNING);
+ }
+
private static < T extends IProvider > T getApiInstance(Class< T > clazz, String path ) {
T inst = SingletonsHolder.get( clazz );
if ( inst == null ) {