Files
MoGoEagleEye/modules/mogo-module-obu-mogo/README.md
2021-08-09 14:15:17 +08:00

226 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#### 说明
自研OBU感知预警模块,wiki: http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=58209118
接收OBU回调数据,进行UI呈现及相关业务
硬件记录:
经纬度采用WGS84坐标系
自车信息100毫秒回调一次需要处理断连风险采用Android系统自身定位信息「可能需要转换下坐标」
V2I场景会有持续性通知Status。需要有保底的情况进行超时清除事件
RV场景收到即显示收不到或断链的时候清除
多预警场景触发HVRV 会采用两个通道,同时触发的时候会采用集合的形式回调,优先级高的在最上面(待验证)
# 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.8'
...
}
```
## 初始化
```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) {
```