Add MogoLauncher.modules.mogo-module-obu-mogo
This commit is contained in:
4
.idea/gradle.xml
generated
4
.idea/gradle.xml
generated
@@ -5,7 +5,7 @@
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="delegatedBuild" value="true" />
|
||||
<option name="testRunner" value="PLATFORM" />
|
||||
<option name="testRunner" value="GRADLE" />
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="1.8" />
|
||||
@@ -53,6 +53,7 @@
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-media" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-monitor" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-obu" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-obu-mogo" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-push" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-push-base" />
|
||||
<option value="$PROJECT_DIR$/modules/mogo-module-push-noop" />
|
||||
@@ -91,7 +92,6 @@
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
1
modules/mogo-module-obu-mogo/.gitignore
vendored
Normal file
1
modules/mogo-module-obu-mogo/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
226
modules/mogo-module-obu-mogo/README.md
Normal file
226
modules/mogo-module-obu-mogo/README.md
Normal file
@@ -0,0 +1,226 @@
|
||||
#### 说明
|
||||
自研OBU感知预警模块,wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58209118
|
||||
接收OBU回调数据,进行UI呈现及相关业务
|
||||
|
||||
|
||||
硬件记录:
|
||||
|
||||
经纬度采用:WGS84坐标系
|
||||
自车信息:100毫秒回调一次(需要处理断连风险,采用Android系统自身定位信息「可能需要转换下坐标」)
|
||||
V2I场景:会有持续性通知,Status。需要有保底的情况进行超时清除事件;
|
||||
RV场景:收到即显示,收不到或断链的时候清除;
|
||||
多预警场景触发:HV,RV 会采用两个通道,同时触发的时候会采用集合的形式回调,优先级高的在最上面(待验证)
|
||||
|
||||
|
||||
|
||||
# OBU Lib
|
||||
## 下载
|
||||
* 步骤1:添加到项目根目录 build.gradle 中
|
||||
```groovy
|
||||
allprojects {
|
||||
repositories {
|
||||
maven{
|
||||
url 'http://maven.aliyun.com/nexus/content/groups/public/'}
|
||||
maven {
|
||||
url 'http://nexus.zhidaoauto.com/repository/maven-releases/'
|
||||
}
|
||||
maven {
|
||||
url 'http://nexus.zhidaoauto.com/repository/maven-public/'
|
||||
}
|
||||
...
|
||||
}
|
||||
}
|
||||
```
|
||||
* 步骤2:添加依赖关系
|
||||
```groovy
|
||||
dependencies {
|
||||
implementation 'com.zhidao.support.obu:mogoobu:1.0.0.7'
|
||||
...
|
||||
}
|
||||
```
|
||||
## 初始化
|
||||
```java
|
||||
MogoObuManager.getInstance().init(Context context);
|
||||
```
|
||||
## 连接
|
||||
```java
|
||||
//默认192.168.8.199
|
||||
MogoObuManager.getInstance().connect();
|
||||
//自定义 IP
|
||||
MogoObuManager.getInstance().connect(String ip);
|
||||
```
|
||||
## 断开连接
|
||||
```java
|
||||
MogoObuManager.getInstance().disConnect();
|
||||
```
|
||||
## 注册监听
|
||||
```java
|
||||
MogoObuManager.getInstance().registerListener(OnMogoObuListener obuListener);
|
||||
```
|
||||
## 取消注册监听
|
||||
```java
|
||||
MogoObuManager.getInstance().unregisterListener();
|
||||
```
|
||||
## OBU监听
|
||||
```java
|
||||
private OnMogoObuListener listener = new OnMogoObuListener() {
|
||||
@Override
|
||||
public void onConnected() {
|
||||
//OBU连接成功
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConnectFail(boolean isNeedReconnect) {
|
||||
//OBU连接失败
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisconnect() {
|
||||
//OBU断开连接
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveOriginData(byte[] data) {
|
||||
super.onReceiveOriginData(data);
|
||||
//接收到的原始数据
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReceiveOriginData(String data) {
|
||||
super.onReceiveOriginData(data);
|
||||
//接收到的原始数据
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSendData(byte[] bytes) {
|
||||
super.onSendData(bytes);
|
||||
//发送的数据
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxHvCarIndInfo(CvxHvCarIndInfo info) {
|
||||
super.onCvxHvCarIndInfo(info);
|
||||
//主车车辆信息
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxHvInfoIndInfo(CvxHvInfoIndInfo info) {
|
||||
//主车信息
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxRvInfoIndInfo(CvxRvInfoIndInfo info) {
|
||||
//远车信息
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxRoadTrafficInfoIndInfo(CvxRoadTrafficInfoIndInfo info) {
|
||||
super.onCvxRoadTrafficInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxPtcInfoIndInfo(CvxPtcInfoIndInfo info) {
|
||||
super.onCvxPtcInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxMapSpatInfoIndInfo(CvxMapSpatInfoIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxV2vThreatIndInfo(CvxV2vThreatIndInfo info) {
|
||||
//V2V预警信息
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxPtcThreatIndInfo(CvxPtcThreatIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxRtiThreatIndInfo(CvxRtiThreatIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxIvpThreatIndInfo(CvxIvpThreatIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxSlwThreatIndInfo(CvxSlwThreatIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxThreatRankIndInfo(CvxThreatRankIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxAppInitIndInfo(CvxAppInitIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
// CVX系统信息
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxAppErrorIndInfo(CvxAppErrorIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxAppDbgRangeCheckIndInfo(CvxAppDbgRangeCheckIndInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxSetConfigCfm(CvxSetConfigCfmInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
//设置CVX系统的配置确认
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCvxAppErrorCfmInfo(CvxAppErrorCfmInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNuImplInfo(NuImplInfo info) {
|
||||
super.onCvxMapSpatInfoIndInfo(info);
|
||||
//异常/错误/未知数据
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
```
|
||||
|
||||
## 测试数据
|
||||
```java
|
||||
//CVX_V2V_THREAT_IND USECASE_ID_ICW 交叉路口碰撞预警
|
||||
String data = "0200003901000000000000000FFAE449D7DCF8228D0000142A03000907E507020C032C012C00000F1B010B50000B00000662470A5700000653";
|
||||
//CVX_V2V_THREAT_IND USECASE_ID_FCW 前向碰撞预警
|
||||
String data = "02000138010000000000001effd7892b11a4440af70100142a02000907e506100e033b0258000006a0010000000b0000146411005a00000c290010000a17f5ea0f45955b1000fd68da01d200090a0006012c01f4009600080032003200320032000b00000000000000000000000000000000190000002300000895000000060000089500000890695a11000000a20010000a17f5eb5a459568ed00fd00001e140010000a17f5eb004595796b00fd000267fa0010000a17f5e9bc45957b9b00fd0002709c0010000a17f5e81945957a9700fd0002786c0010000a17f5e87a4595757300fd000285500010000a17f5e8fd4595649400fd0002a3000010000a17f5e74a459536a400fe0002f6fc0010000a17f5e8ef459525a001000006bb700010000a17f5e92a4595144a01010006d7f400060000448e2710";
|
||||
//CVX_V2V_THREAT_IND USECASE_ID_BSW 盲区预警
|
||||
String data = "020000ba010000000000001effd2b073b490d08b0e0100142a07000907e506100c2b070258fffff364010000000b0000365a22465700003a980010000a17f5e977459491bd01032283012e00090a0006012c01f400960008009d009d009d009d000b0000000000000000000000000000000019fffffffcfffff0acfffffd62fffff17000000f4a699222000000240010000a17f5e8fa45948c230103000037dc0010000a17f5e6a345948a4c0121000259f40006000027101f40";
|
||||
// CVX_V2V_THREAT_IND USECASE_ID_EBW 紧急制动预警
|
||||
String data = "02000126010000000000001EFF58E70F553F9EA4DE0100142A01000907E506120E360500C8000004930322F7000B000008A4118B99000001F00010000A17F595114595DC2500FB02BD027200090A0006012C01F400960008FE76FE76FE76FE76000B0000000000000000000000000000000019FFFFFFB400000687FFFFFFB4000006870000068C01E511000000900010000A17F588164595D9FF00FB000015180010000A17F579234595D8A900FA000101D00010000A17F577844595D67E00FA00010FD60010000A17F578A64595D49400FA00011B8E0010000A17F57E884595D68B00FA00012D900010000A17F5AA0D4595DE5100FC000184AC0010000A17F5BFB04595E08300FC000204040010000A17F5C0EA4595E06A00F5000798EC00060004FFEC2710";
|
||||
//CVX_HV_INFO_IND 自车信息
|
||||
String data = "010100D70000000000000003DF000907E506120E090E01900010000A17F5EF204595EBFF00DB098B028700060000000000000008004E004E004E004E000B000000000000000000000000000000007E0010000A17F5ED014595EA8300DB0000044C0010000A17F5E9914595E5B300DB00000F3C0010000A17F5E82C4595DDE600DB000020D00010000A17F5E88945959A4200E500009A4C0010000A17F5E78945958C6300E50000B8C30010000A17F5E8C8459580A100D40007F51C0010000A17F5E90D459565C900DE000820780006FFFFF07617700000";
|
||||
//CVX_RV_INFO_IND 远车信息
|
||||
String data = "010200E700000000000001FEFF58E70F553F9EA4DE00000907E506120F050B00B50010000A17F587544595D9DE00FA145300DE000600000000000000090A0006012C01F400960008FFC7FFC7FFC7FFC7000B0000000000000000000000000000000019FFFFFD9200000834FFFFFD920000083400000891425F000000005A0010000A17F5871A4595D84500FB000006A40010000A17F588AD4595D6DC00FA0000125C0010000A17F5A3264595DD1000FB000682680010000A17F5EC2E4595E99A00FD000718040010000A17F5EE664595E9F900FD00071D180006FFFFD8F0177000000000000000";
|
||||
```
|
||||
## 测试方法调用
|
||||
```java
|
||||
/**
|
||||
* @param data 原始OBU数据流
|
||||
*/
|
||||
MogoObuManager.getInstance().test(String data);
|
||||
|
||||
/**
|
||||
* @param opCode 参数1: OP_CODE
|
||||
* 参数2: 目前只有OP_CODE = ObuConstants.OP_CODE.CVX_V2V_THREAT_IND时有效,OP_CODE为其他值时不需要传入
|
||||
* 当OP_CODE = ObuConstants.OP_CODE.CVX_V2V_THREAT_IND预警时 默认不填紧急制动预警,0:交叉路口碰撞预警,1:前向碰撞预警,2:盲区预警
|
||||
*/
|
||||
MogoObuManager.getInstance().test(@Define.OpCode int... opCode) {
|
||||
```
|
||||
50
modules/mogo-module-obu-mogo/build.gradle
Normal file
50
modules/mogo-module-obu-mogo/build.gradle
Normal file
@@ -0,0 +1,50 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-android'
|
||||
id 'kotlin-android-extensions'
|
||||
id 'kotlin-kapt'
|
||||
id 'com.alibaba.arouter'
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.android.compileSdkVersion
|
||||
defaultConfig {
|
||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||
versionCode Integer.valueOf(VERSION_CODE)
|
||||
versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION")
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = [AROUTER_MODULE_NAME: project.getName()]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation 'androidx.core:core-ktx:1.3.2'
|
||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||
implementation 'com.google.android.material:material:1.3.0'
|
||||
testImplementation 'junit:junit:4.+'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||
}
|
||||
0
modules/mogo-module-obu-mogo/consumer-rules.pro
Normal file
0
modules/mogo-module-obu-mogo/consumer-rules.pro
Normal file
Binary file not shown.
BIN
modules/mogo-module-obu-mogo/doc/AMI通讯协议.docx
Normal file
BIN
modules/mogo-module-obu-mogo/doc/AMI通讯协议.docx
Normal file
Binary file not shown.
BIN
modules/mogo-module-obu-mogo/doc/CV2X_HLI_v1.0.1.pdf
Normal file
BIN
modules/mogo-module-obu-mogo/doc/CV2X_HLI_v1.0.1.pdf
Normal file
Binary file not shown.
BIN
modules/mogo-module-obu-mogo/doc/HLI通讯协议.docx
Normal file
BIN
modules/mogo-module-obu-mogo/doc/HLI通讯协议.docx
Normal file
Binary file not shown.
3
modules/mogo-module-obu-mogo/gradle.properties
Normal file
3
modules/mogo-module-obu-mogo/gradle.properties
Normal file
@@ -0,0 +1,3 @@
|
||||
GROUP=com.mogo.module
|
||||
POM_ARTIFACT_ID=module-obu-mogo
|
||||
VERSION_CODE=1
|
||||
21
modules/mogo-module-obu-mogo/proguard-rules.pro
vendored
Normal file
21
modules/mogo-module-obu-mogo/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.mogo.module.obu.mogo">
|
||||
|
||||
</manifest>
|
||||
@@ -74,3 +74,4 @@ include ':OCH:mogo-och-taxi'
|
||||
include ':OCH:mogo-och-bus'
|
||||
include ':OCH:mogo-och-noop'
|
||||
include ':OCH:mogo-och'
|
||||
include ':modules:mogo-module-obu-mogo'
|
||||
|
||||
Reference in New Issue
Block a user