@@ -48,18 +48,21 @@ import com.zhidao.support.adas.high.AdasOptions;
import com.zhidao.support.adas.high.OnAdasConnectStatusListener ;
import com.zhidao.support.adas.high.OnAdasListener ;
import com.zhidao.support.adas.high.bean.VersionCompatibility ;
import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS ;
import com.zhidao.support.adas.high.common.CupidLogUtils ;
import com.zhidao.support.adas.high.common.ProtocolStatus ;
import com.zhjt.mogo.adas.data.AdasConstants ;
import com.zhjt.mogo.adas.data.AiCloudTask ;
import com.zhjt.mogo.adas.data.bean.AdasParam ;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics ;
import com.zhjt.mogo.adas.data.bean.UnableAutopilotReason ;
import com.zhjt.mogo.adas.data.sweeper.SweeperCloudTas k ;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData ;
import com.zhjt.mogo.adas.data.bean.ReceivedAc k ;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason ;
import com.zhjt.mogo.adas.data.sweeper.bootable.SweeperBootable ;
import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask ;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume ;
import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus ;
import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume ;
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm ;
import com.zhjt.mogo.adas.data.sweeper.task.s_r.SweeperTaskSuspendResume ;
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus ;
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop ;
@@ -77,17 +80,24 @@ import java.util.Timer;
import java.util.TimerTask ;
import bag_manager.BagManagerOuterClass ;
import chassis.Chassis ;
import chassis.ChassisStatesOuterClass ;
import chassis.VehicleStateOuterClass ;
import fault_management.FmInfo ;
import fsm.Fsm2024 ;
import function_state_management.FunctionStates ;
import localization.LocState ;
import mogo.telematics.pad.MessagePad ;
import mogo.v2x.MogoV2X ;
import mogo.v2x.RoadOverviewEvents ;
import mogo.yycp.paralleldriving.protocol.ParallelTaskProcessNoticeOuterClass ;
import mogo_msg.MogoReportMsg ;
import perception.TrafficLightOuterClass ;
import perception.Fusion TrafficLightOuterClass ;
import perception.LaneMarkOuterClass ;
import planning.RoboSweeperTaskIndexOuterClass ;
import prediction.Prediction ;
import record_cache.RecordPanelOuterClass ;
import system_master.SsmInfo ;
import system_master.SystemStatusInfo ;
public class MainActivity extends BaseActivity implements OnAdasListener , OnAdasConnectStatusListener , BaseAdapter . OnItemClickListener < TitleBean > {
@@ -106,8 +116,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
private RadioGroup connectionType ;
private AppCompatButton connect ;
private AppCompatButton disconnect ;
private RadioButton fixation ;
private RadioButton assign ;
private RadioButton specified ;
private RadioButton ping ;
private RecyclerView infoBtn ;
private TextView tvConnectState ;
private TextView gnss_hint ;
@@ -116,7 +126,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
private Timer timerAcc ;
private final List < TitleBean > titleBtnData = new ArrayList < > ( ) ;
private final List < IPCConnectState > connectStatusList = new ArrayList < > ( ) ;
private int connectStatus ;
private AdasConstants . IpcConnectionStatus connectStatus ;
private String certificationResult = " 未开启认证 " ;
private ListPopupWindow listPopupWindow ;
private FloatWindow floatWindow ;
private View include_title ;
@@ -130,7 +141,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
initView ( ) ;
initAdas ( ) ;
connectStatus = AdasManager . getInstance ( ) . getIpcConnectionStatus ( ) ;
onUpdateConnectStateView ( ) ;
onUpdateConnectStateView ( " 未连接 " ) ;
showIPCIP ( ) ;
AdasManager . getInstance ( ) . setEnableLog ( false ) ;
vibrator = ( Vibrator ) getSystemService ( Context . VIBRATOR_SERVICE ) ;
@@ -168,21 +179,29 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
private void connect ( boolean isConnect ) {
AdasOptions options = AdasManager . getInstance ( ) . getAdasOptions ( ) ;
AdasOptions . Builder builder ;
if ( options = = null ) {
builder = AdasOptions . newBuilder ( ) . setPassenger ( false ) ;
} else {
builder = options . toBuilder ( ) ;
}
if ( isConnect ) {
switch ( Constants . getIpcConnectionMode ( this ) ) {
case AdasOptions . IPC_CONNECTION_MODE . FIXATION :
AdasManag er. g etInstance ( ) . getAdasOptions ( ) . setIpcFixationIP ( AdasManager . getInstance ( ) . getIPCFixationIP List ( this ) ) ;
case AdasOptions . IPC_CONNECTION_MODE . PING :
build er. s etPingAddressList ( AdasManager . getInstance ( ) . getPingAddress List ( ) ) ;
break ;
case AdasOptions . IPC_CONNECTION_MODE . ASSIGN :
case AdasOptions . IPC_CONNECTION_MODE . SPECIFIED :
String ip = etIp . getText ( ) . toString ( ) . trim ( ) ;
if ( TextUtils . isEmpty ( ip ) ) {
Toast . makeText ( this , " 请输入指定IP " , Toast . LENGTH_SHORT ) . show ( ) ;
return ;
}
AdasManager . getInstance ( ) . getAdasOptions ( ) . setIpcAssignIP ( ip ) ;
builder . setSpecifiedAddress ( ip ) ;
break ;
}
AdasManager . getInstance ( ) . getAdasOptions ( ) . setIpc ConnectionMode( Constants . getIpcConnectionMode ( this ) ) ;
builder . set ConnectionMode( Constants . getIpcConnectionMode ( this ) ) ;
AdasManager . getInstance ( ) . setAdasOptions ( builder . build ( ) ) ;
AdasManager . getInstance ( ) . connect ( ) ;
} else
AdasManager . getInstance ( ) . disconnect ( ) ;
@@ -197,8 +216,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
tvIp = findViewById ( R . id . tv_ip ) ;
connect = findViewById ( R . id . connect ) ;
disconnect = findViewById ( R . id . disconnect ) ;
fixation = findViewById ( R . id . fixation ) ;
assign = findViewById ( R . id . assign ) ;
specified = findViewById ( R . id . specified ) ;
ping = findViewById ( R . id . ping ) ;
title = findViewById ( R . id . title ) ;
infoBtn = findViewById ( R . id . info_btn ) ;
@@ -221,11 +240,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
initListData ( ) ;
initBtnRecyclerView ( ) ;
switch ( Constants . getIpcConnectionMode ( this ) ) {
case 0 :
fixation . setChecked ( true ) ;
break ;
case 1 :
assign . setChecked ( true ) ;
specified . setChecked ( true ) ;
break ;
case 0 :
ping . setChecked ( true ) ;
break ;
}
@@ -241,14 +260,10 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
public void onCheckedChanged ( RadioGroup group , int checkedId ) {
AdasManager . getInstance ( ) . disconnect ( ) ;
int type ;
switch ( checkedId ) {
default :
ca se R . id . assign :
type = AdasOptions . IPC_CONNECTION_MODE . ASSIGN ;
break ;
case R . id . fixation :
type = AdasOptions . IPC_CONNECTION_MODE . FIXATION ;
break ;
if ( checkedId = = R . id . specified ) {
type = AdasOptions . IPC_CONNECTION_MODE . SPECIFIED ;
} el se {
type = AdasOptions . IPC_CONNECTION_MODE . PING ;
}
Constants . setIpcConnectionMode ( MainActivity . this , type ) ;
}
@@ -407,56 +422,6 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
private int getStatusColor ( int connectStatus ) {
int color ;
switch ( connectStatus ) {
case IPC_CONNECTION_STATUS . CONNECTED :
color = R . color . connect_status_connected ;
break ;
default :
case IPC_CONNECTION_STATUS . DISCONNECTED :
color = R . color . connect_status_disconnected ;
break ;
case IPC_CONNECTION_STATUS . CONNECTING :
color = R . color . connect_status_connecting ;
break ;
case IPC_CONNECTION_STATUS . SEARCH_ADDRESS :
color = R . color . connect_status_search_address ;
break ;
case IPC_CONNECTION_STATUS . NOT_FOUND_ADDRESS :
color = R . color . connect_status_disconnecting ;
break ;
}
return color ;
}
private String onUpdateConnectStateView ( ) {
String status ;
switch ( connectStatus ) {
case IPC_CONNECTION_STATUS . CONNECTED :
status = " 已连接 " ;
break ;
default :
case IPC_CONNECTION_STATUS . DISCONNECTED :
status = " 未连接 " ;
break ;
case IPC_CONNECTION_STATUS . CONNECTING :
status = " 连接中 " ;
break ;
case IPC_CONNECTION_STATUS . SEARCH_ADDRESS :
status = " 搜索IP " ;
break ;
case IPC_CONNECTION_STATUS . NOT_FOUND_ADDRESS :
status = " 未找到 " ;
break ;
}
Message msg = Message . obtain ( ) ;
msg . obj = new IPCConnectState ( status , getStatusColor ( connectStatus ) ) ;
msg . what = WHAT_IPC_CONNECT_STATE ;
getHandler ( ) . sendMessage ( msg ) ;
return status ;
}
@Override
public void onError ( ProtocolStatus status , byte [ ] bytes ) {
@@ -491,6 +456,11 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
@Override
public void onLightSwitch ( @NonNull Chassis . LightSwitch light ) {
}
@Override
public void onAutopilotState ( MessagePad . Header header , MessagePad . AutopilotState autopilotState ) {
}
@@ -500,7 +470,8 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
@Override
public void onPerceptionTrafficLight ( MessagePad . Header header , TrafficLightOuterClass . TrafficLights trafficLights ) {
public void onPerceptionTrafficLight ( MessagePad . Header header , Fusion TrafficLightOuterClass. Fusion TrafficLights trafficLights ) {
}
@Override
@@ -546,6 +517,26 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
public void onStatusQueryResp ( MessagePad . Header header , SystemStatusInfo . StatusInfo statusInfo ) {
}
@Override
public void onSystemStatus ( MessagePad . Header header , SsmInfo . SsmStatusInf statusInf ) {
}
@Override
public void onFaultManagementState ( MessagePad . Header header , @NonNull FmInfo . FaultResultMsg fmInfo ) {
}
@Override
public void onFSM2024State ( @NonNull MessagePad . Header header , @NonNull Fsm2024 . FSMStateMsg fsmState ) {
}
@Override
public void onLocalizationState ( MessagePad . Header header , @NonNull LocState . loc_state locState ) {
}
@Override
public void onRecordDataConfigResp ( MessagePad . Header header , MessagePad . RecordDataConfig config ) {
@@ -593,45 +584,57 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
@Override
public void onSweeperFutianCloudTask ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTask . TaskInfo taskInfo ) {
public void onSweeperFutianCloudTask ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTask . TaskInfo taskInfo ) {
}
@Override
public void onSweeperFutianCloudTaskConfirm ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskConfirm . TaskConfirm taskConfirm ) {
public void onSweeperFutianCloudTaskConfirm ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskConfirm . TaskConfirm taskConfirm ) {
}
@Override
public void onSweeperFutianCloudTaskStatus ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskStatus . TaskStatusPush taskStatusPush ) {
public void onSweeperFutianCloudTaskStatus ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskStatus . TaskStatusPush taskStatusPush ) {
}
@Override
public void onSweeperFutianCloudTaskStop ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskStop . StopTaskReq stopTaskReq ) {
public void onSweeperFutianCloudTaskStop ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskStop . StopTaskReq stopTaskReq ) {
}
@Override
public void onSweeperFutianCloudTaskSuspendResume ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskSuspendResume . SuspendResumeTaskResp suspendResumeTaskResp ) {
public void onSweeperFutianCloudTaskSuspendResume ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskSuspendResume . SuspendResumeTaskResp suspendResumeTaskResp ) {
}
@Override
public void onSweeperFutianCloudBootable ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperBootable . IsBootableResp isBootableResp ) {
public void onSweeperFutianCloudBootable ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperBootable . IsBootableResp isBootableResp ) {
}
@Override
public void onSweeperFutianCloudBigTaskStatus ( @NonNull MessagePad . Header header , @NonNull Sweeper CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperBigTaskStatus . BigTaskStatusPush bigTaskStatusPush ) {
public void onSweeperFutianCloudBigTaskStatus ( @NonNull MessagePad . Header header , @NonNull Ai CloudTask. MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperBigTaskStatus . BigTaskStatusPush bigTaskStatusPush ) {
}
@Override
public void onSweeperFutianCloudTaskCloudSuspendResume ( @NonNull MessagePad . Header header , @NonNull AiCloudTask . MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable SweeperTaskCloudSuspendResume . BigTaskActionPush bigTaskActionPush ) {
}
@Override
public void onSweeperFutianCloudTaskUnknown ( @NonNull MessagePad . Header header , @NonNull byte [ ] bytes ) {
public void onParallelDrivingResp ( @NonNull MessagePad . Header header , @NonNull AiCloudTask . MessageType messageType , @Nullable String reqNo , long sysTime , @Nullable ParallelTaskProcessNoticeOuterClass . ParallelTaskProcessNotice parallelTaskProcessNotice ) {
}
@Override
public void onAiCloudTaskUnknown ( @NonNull MessagePad . Header header , @NonNull byte [ ] bytes ) {
}
@Override
public void onBagManagerCmd ( MessagePad . Header header , BagManagerOuterClass . BagManager bagManager ) {
@@ -658,7 +661,52 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
@Override
public void onAutopilotAbility ( boolean isAutopilotAbility , @Nullable List < UnableAutopilotReason > unableAutopilotReasons ) {
public void onV2nNioGreenWavePassageEvent ( @NonNull MessagePad . Header header , @Non Null MessagePad . V2nCrossSpeed crossSpeed ) {
}
@Override
public void onV2nNioCrossoverEvent ( @NonNull MessagePad . Header header , @NonNull MessagePad . Event event ) {
}
@Override
public void onV2nNioOtherRetrogradeEvent ( @NonNull MessagePad . Header header , @NonNull MessagePad . Event event ) {
}
@Override
public void onV2nNioCongestionEvent ( @NonNull MessagePad . Header header , @NonNull MessagePad . V2nCongestion congestion ) {
}
@Override
public void onLaneMarksTran ( @NonNull MessagePad . Header header , @NonNull LaneMarkOuterClass . LaneMarks laneMarks ) {
}
@Override
public void onSsmReceiveTimeout ( boolean isTimeout ) {
}
@Override
public void onFsm2024ReceiveTimeout ( boolean isTimeout ) {
}
@Override
public void onAutopilotAbility ( boolean isAutopilotAbility , @NonNull LaunchConditionData launchConditionData , @Nullable ArrayList < UnableLaunchReason > unableAutopilotReasons ) {
}
@Override
public void onParallelDrivingAbility ( boolean isParallelDrivingAbility ) {
}
@Override
public void onReceiveReceivedAck ( @NonNull ReceivedAck receivedAck ) {
}
@@ -670,41 +718,133 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
int mode = Constants . getIpcConnectionMode ( this ) ;
switch ( mode ) {
default :
case AdasOptions . IPC_CONNECTION_MODE . FIXATION :
options = new AdasOptions . Builder ( ) . setClient ( false ) . setIpcFixationIP ( AdasManager . getInstance ( ) . getIPCFixationIP List ( this ) ) . setIpc ConnectionMode ( mode ) . build ( ) ;
case AdasOptions . IPC_CONNECTION_MODE . PING :
options = AdasOptions . new Builder( ) . setPassenger ( false ) . setPingAddressList ( AdasManager . getInstance ( ) . getPingAddress List ( ) ) . setConnectionMode ( mode ) . build ( ) ;
break ;
case AdasOptions . IPC_CONNECTION_MODE . ASSIGN :
options = new AdasOptions . Builder ( ) . setClient ( false ) . setIpcAssignIP ( Constants . getIPCIp ( this ) ) . setIpc ConnectionMode ( mode ) . build ( ) ;
case AdasOptions . IPC_CONNECTION_MODE . SPECIFIED :
options = AdasOptions . new Builder( ) . setPassenger ( false ) . setSpecifiedAddress ( Constants . getIPCIp ( this ) ) . setConnectionMode ( mode ) . build ( ) ;
break ;
}
AdasManager . getInstance ( ) . create ( options , this ) ;
AdasManager . getInstance ( ) . create ( this , options , this ) ;
AdasManager . getInstance ( ) . setOnAdasListener ( this ) ;
}
private int getStatusColor ( AdasConstants . IpcConnectionStatus connectStatus ) {
int color ;
if ( connectStatus = = AdasConstants . IpcConnectionStatus . CONNECTED ) {
color = R . color . connect_status_connected ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . CONNECTING ) {
color = R . color . connect_status_connecting ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . RECONNECTING_TIMER ) {
color = R . color . connect_status_reconnecting_timer ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . RECONNECTING_NETWORK ) {
color = R . color . connect_status_reconnecting_network ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . CONNECT_EXCEPTION ) {
color = R . color . connect_status_connect_failed ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . ILLEGAL_ADDRESS ) {
color = R . color . connect_status_illegal_address ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . SEARCH_ADDRESS ) {
color = R . color . connect_status_search_address ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . NOT_FOUND_ADDRESS ) {
color = R . color . connect_status_not_found_address ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . CERTIFICATION_FAILED ) {
color = R . color . connect_status_certification_failed ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . HEARTBEAT_TIMEOUT ) {
color = R . color . connect_status_heartbeat_timeout ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . PROTOCOL_MISMATCH ) {
color = R . color . connect_status_protocol_mismatch ;
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . SERVER_DISCONNECTED ) {
color = R . color . connect_status_server_disconnect ;
} else {
color = R . color . connect_status_disconnected ;
}
return color ;
}
private void onUpdateConnectStateView ( String status ) {
Message msg = Message . obtain ( ) ;
msg . obj = new IPCConnectState ( status , getStatusColor ( connectStatus ) ) ;
msg . what = WHAT_IPC_CONNECT_STATE ;
getHandler ( ) . sendMessage ( msg ) ;
}
@Override
public void onConnectionIPCStatus ( int ipcConnectionStatus , String reason ) {
String time = sdf . format ( new Date ( ) ) ;
connectStatusList . add ( 0 , new IPC ConnectState ( reason = = null ? " 主动断开连接 " : re ason, getStatusColor ( i pcConnectionStatus) ) ) ;
public void onConnectionIPCStatus ( AdasConstants . IpcConnectionStatus ipcConnectionStatus , @Nullable String reason ) {
String connectStatusDescribe = " 未连接 " ;
if ( ipc Connection Status = = Ad asC onstants . I pcConnectionStatus. DISCONNECTED ) {
connectStatusDescribe = " 主动断开连接 \ n未连接或主动断开连接( 未连接: 鹰眼首次启动时未调用连接函数【目前鹰眼默认启动就会调用连接函数】; 主动断开连接: 主动调用断开连接函数; " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . CONNECTED ) {
connectStatusDescribe = " 已连接 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . CONNECTING ) {
connectStatusDescribe = " 连接中 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . RECONNECTING_TIMER ) {
connectStatusDescribe = " 重连中 \ n类型: 定时器 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . RECONNECTING_NETWORK ) {
connectStatusDescribe = " 重连中 \ n类型: 网络监听 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . CONNECT_EXCEPTION ) {
connectStatusDescribe = " 连接异常 \ n鹰眼与域控连接失败、无法连接、非正常断开等, 原因: " + reason ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . ILLEGAL_ADDRESS ) {
connectStatusDescribe = " 非法地址 \ n连接模式为指定地址时: 表示当前鹰眼调用连接时传入的域控地址错误或不符合规则【不修改默认配置不会出现此问题】; 连接模式为PING模式时: 表示传入的PING地址列表存在问题 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . SEARCH_ADDRESS ) {
connectStatusDescribe = " 正在搜索域控地址 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . NOT_FOUND_ADDRESS ) {
connectStatusDescribe = " 找不到可用地址 \ n域控地址列表中的全部地址均无法连通【不修改默认配置的情况下需要排查PAD是否连接车载路由器、工控机是否连接车载路由器、工控机是否开机等】 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . CERTIFICATION_FAILED ) {
connectStatusDescribe = " 域控证书认证异常 \ n鹰眼端或鹰眼端和域控端启用认证后出现异常, 原因: " + certificationResult ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . HEARTBEAT_TIMEOUT ) {
connectStatusDescribe = " 心跳超时 \ n连接域控成功后在一段时间内未收到域控任何数据) , 超时时间: " + reason + " 秒 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . PROTOCOL_MISMATCH ) {
connectStatusDescribe = " 協議不匹配 \ n被连接的域控端非WebSocket协议【可能性非常低】 " ;
} else if ( ipcConnectionStatus = = AdasConstants . IpcConnectionStatus . SERVER_DISCONNECTED ) {
connectStatusDescribe = " 域控主动断开连接 \ n域控主动发起断开WebSocket连接, 目前主要原因有: 1.证书认证失败; 2.老版本MAP不支持多连接的情况下会踢掉客户端; 域控断开发送的消息: " + reason ;
}
connectStatusList . add ( 0 , new IPCConnectState ( connectStatusDescribe , getStatusColor ( ipcConnectionStatus ) ) ) ;
if ( connectStatusList . size ( ) > 100 ) {
connectStatusList . remove ( connectStatusList . size ( ) - 1 ) ;
}
connectStatus = ipcConnectionStatus ;
String status = onUpdateConnectStateView ( ) ;
if ( connectStatus = = IPC_CONNECTION_STATUS . CONNECTED ) {
if ( connectStatusDescribe . contains ( " \ n " ) ) {
connectStatusDescribe = connectStatusDescribe . substring ( 0 , connectStatusDescribe . indexOf ( " \ n " ) ) ;
}
onUpdateConnectStateView ( connectStatusDescribe ) ;
if ( connectStatus = = AdasConstants . IpcConnectionStatus . CONNECTED ) {
getHandler ( ) . sendEmptyMessage ( WHAT_IPC_IP ) ;
String tem = getIPCIP ( ) ;
if ( ! TextUtils . isEmpty ( tem ) ) {
List < String > ips = Constants . getIpcUsedIps ( this ) ;
Constants . addIpcUsedIps ( this , ips , tem ) ;
}
} else if ( connectStatus = = IPC_CONNECTION_STATUS . DISCONNECTED ) {
} else if ( connectStatus = = AdasConstants . IpcConnectionStatus . DISCONNECTED ) {
getHandler ( ) . sendEmptyMessage ( WHAT_IPC_IP ) ;
}
// LogSave.getInstance().saveLog("连接状态", status);
// CupidLogUtils.i(TAG, "connectStatus=" + status);
}
@Override
public void onCertification ( @NonNull AdasConstants . CertificationStatus status ) {
if ( status = = AdasConstants . CertificationStatus . TIMEOUT ) {
certificationResult = " 证书认证超时( 表示域控未发送BasicInfoReq接口的数据【这种情况可能是连接出现了问题】) " ;
} else {
if ( status ! = AdasConstants . CertificationStatus . NOT_ENABLED ) {
if ( status = = AdasConstants . CertificationStatus . CERTIFICATE_CHAIN_SUCCESS ) {
certificationResult = " 成功校验域控证书 " ;
} else if ( status = = AdasConstants . CertificationStatus . ROOT_CRT_ERROR ) {
certificationResult = " 获取ROOT证书异常( 表示未传递证书, 没有拿到ROOT证书) " ;
} else if ( status = = AdasConstants . CertificationStatus . IPC_CRT_ERROR ) {
certificationResult = " 获取域控证书异常( 表示域控发送了BasicInfoReq接口的数据但是未传递证书或证书解码失败【失败的可能性很低】) " ;
} else if ( status = = AdasConstants . CertificationStatus . CERTIFICATE_CHAIN_FAILED ) {
certificationResult = " 域控证书校验失败(表示证书链未验证通过。证书不匹配、证书格式不正确) " ;
}
}
}
}
@Override
public void onCompatibility ( VersionCompatibility versionCompatibility ) {
showToastCenter ( " 所连工控机: \ n " + ( versionCompatibility = = null ? " 未连接 " : versionCompatibility . toString ( ) ) , Toast . LENGTH_LONG ) ;
@@ -746,7 +886,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
}
}
if ( connectStatus ! = IPC_CONNECTION_STATUS . CONNECTED ) {
if ( connectStatus ! = AdasConstants . IpcConnectionStatus . CONNECTED ) {
String msg = " 未连接工控机 " ;
showToastCenter ( msg ) ;
return ;