Merge branch 'dev_robotaxi-d_240523_6.4.4' of gitlab.zhidaoauto.com:SCA/L4HA/AndroidApp/MoGoEagleEye into dev_robotaxi-d_240523_6.4.4

This commit is contained in:
wangmingjun
2024-05-28 16:05:42 +08:00
25 changed files with 413 additions and 110 deletions

View File

@@ -9,6 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
import com.mogo.och.bus.passenger.passenger.ui.PM2BaseFragment
import com.mogo.och.bus.passenger.passenger.ui.widget.M2StatusBarView
@@ -31,7 +32,7 @@ class BusPassengerProvider : CommonServiceImpl() {
private var mPM2Fragment: Fragment?=null
override fun getFragment(): Fragment {
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && DeviceUtils.isEB5Model()) {
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
}
if(mPM2Fragment==null){

View File

@@ -7,6 +7,7 @@ import com.mogo.och.common.module.BuildConfig
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.manager.socket.lan.ILanMessageListener
@@ -21,7 +22,7 @@ import com.mogo.och.common.module.utils.FlavorUtils
object LoginLanDriverSocket : ILoginCallback {
private const val TAG = "LoginLanSocket"
// 客户端注册
// 接受到客户端注册信息后立即返回业务模式
private val registerListener = object : ILanMessageListener<BaseDPMsg> {
override fun target(): Class<BaseDPMsg> {
return BaseDPMsg::class.java
@@ -31,13 +32,11 @@ object LoginLanDriverSocket : ILoginCallback {
println("-------${obj}")
if(LoginStatusManager.isLogin()) {
FlavorUtils.getEnvCheck()
val msg =
ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, FlavorUtils.businessType!!, FlavorUtils.projectType!!, FlavorUtils.envType!!)
LanSocketManager.sendMsgToClient(msg)
}else{
FlavorUtils.getEnvCheck()
val msg =
ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
val msg = ChangeBusinessType(FlavorUtils.vehicleType!!, BusinessType.none, FlavorUtils.projectType!!, FlavorUtils.envType!!)
LanSocketManager.sendMsgToClient(msg)
}
}
@@ -45,11 +44,13 @@ object LoginLanDriverSocket : ILoginCallback {
};
fun load() {
LanSocketManager.load()
OchChainLogManager.writeChainLogInit("初始化信息","初始司机屏局域网内通知监听")
}
init {
// 登录状态变化的监听
LoginStatusManager.addListener(TAG, this)
// 注册监听乘客屏和报站屏注册信息
LanSocketManager.registerSocketMessageListener(
DPMsgType.TYPE_CLIENT_REGISTER.type,
TAG,

View File

@@ -21,6 +21,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.EnvCheck
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
import com.mogo.och.common.module.manager.socket.lan.bean.ScreenType
import com.mogo.och.common.module.manager.socket.lan.bean.VehicleType
import java.lang.StringBuilder
import kotlin.properties.Delegates
@@ -70,6 +71,9 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
if (obj.isNotEmpty()) {
val first = obj.first() as EnvCheck
val checkEnv = checkEnv(first.projectType, first.envType, first.vehicleType, first.businessType)
if (first.sourceScreenType== ScreenType.Driver) {
driverSn = first.sourceSn
}
if(checkEnv){
}else{
@@ -131,19 +135,21 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
};
fun load() {
LanSocketManager.load()
OchChainLogManager.writeChainLogInit("初始化信息","初始局乘客屏局域网内部分信息")
}
init {
//监听司机端消息
CallerTelematicListenerManager.addListener(TAG, this)
//轮训获取和司机屏连接
BizLoopManager.setLoopFunction(TAG, LoopInfo(3, ::showConnectStatusWithDriver))
// 乘客屏
// 乘客屏监听司机端发送的环境校验
LanSocketManager.registerSocketMessageListener(
DPMsgType.TYPE_ENV_CHECK.type,
TAG,
checkListener
)
// 乘客屏监听司机端发送的业务修改通知(
LanSocketManager.registerSocketMessageListener(
DPMsgType.TYPE_CHANGE_BUSINESS_TYPE.type,
TAG,
@@ -151,9 +157,7 @@ object LoginLanPassengerSocket : IReceivedMsgListener {
)
}
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
}
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {}
private fun showConnectStatusWithDriver(){
CallerLogger.d(TAG,"司机屏连接状态:${CallerTelematicManager.getClientConnStatus()}")

View File

@@ -1,16 +1,21 @@
package com.mogo.och.common.module.biz.login;
public class LoginInfo {
public int driverStatus; //1登录0登出
public int servingStatus;//1接单中0暂停接单
public int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车
public String orderNo;
public int purpose; // 1 运营, 2 测试, 3演示
public String sn;
public String plateNumber;//车牌号
public String phone;//手机号
public Integer lineId;//线路id
public Integer taskId;//任务id
private int driverStatus; //1登录0登出
private int servingStatus;//1接单中0暂停接单
private int businessType; //9: taxi. 10: bus公交 11:接驳 13:包车
private String orderNo;
private int purpose; // 1 运营, 2 测试, 3演示
private String sn;
private String plateNumber;//车牌号
private String phone;//手机号
private Integer lineId;//线路id
private Integer taskId;//任务id
private String vin;//车辆唯一识别码
private String cityCode;//城市编码
private String brand;//东风
private String carModel;//E70 型号
private String photos;//车身照片:
public int getDriverStatus() {
return driverStatus;
@@ -76,6 +81,62 @@ public class LoginInfo {
this.taskId = taskId;
}
public int getServingStatus() {
return servingStatus;
}
public void setServingStatus(int servingStatus) {
this.servingStatus = servingStatus;
}
public int getBusinessType() {
return businessType;
}
public void setBusinessType(int businessType) {
this.businessType = businessType;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getCarModel() {
return carModel;
}
public void setCarModel(String carModel) {
this.carModel = carModel;
}
public String getPhotos() {
return photos;
}
public void setPhotos(String photos) {
this.photos = photos;
}
@Override
public String toString() {
return "LoginInfo{" +
@@ -89,6 +150,11 @@ public class LoginInfo {
", phone='" + phone + '\'' +
", lineId=" + lineId +
", taskId=" + taskId +
", vin='" + vin + '\'' +
", cityCode='" + cityCode + '\'' +
", brand='" + brand + '\'' +
", carModel='" + carModel + '\'' +
", photos='" + photos + '\'' +
'}';
}
}

View File

@@ -0,0 +1,41 @@
package com.mogo.och.common.module.manager.device.checkvin
import android.content.Context
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import kotlinx.android.synthetic.main.common_checkvin_view.actv_see
class CheckVinErrorDialog(context: Context) : BaseFloatDialog(context), LifecycleObserver {
companion object{
const val EVENT_KEY_INFO_CHECK_VIN = "analytics_event_och_check_vin"
}
init {
setContentView(R.layout.common_checkvin_view)
setCanceledOnTouchOutside(true)
actv_see.onClick {
OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true,EVENT_KEY_INFO_CHECK_VIN)
dismiss()
}
}
fun showDialog() {
if (isShowing) {
return
}
show()
}
fun hideDialog() {
if (isShowing) {
dismiss()
}
}
}

View File

@@ -0,0 +1,68 @@
package com.mogo.och.common.module.manager.device.checkvin
import chassis.Chassis
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisDoorStateListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListenerManager
import com.mogo.eagle.core.function.call.base.CallerBase
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.device.callback.DoorStateCallback
import com.mogo.och.common.module.manager.device.data.DoorPosition
import com.mogo.och.common.module.manager.device.data.DoorState
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import io.reactivex.schedulers.Schedulers
object CheckVinManager : IMoGoChassisDoorStateListener {
private val TAG = CheckVinManager::class.java.simpleName
init {
BizLoopManager.setLoopFunction(TAG, LoopInfo(60,::checkVin,scheduler = Schedulers.io()))
}
private var checkVinErrorDialog:CheckVinErrorDialog?=null
private fun checkVin() {
LoginStatusManager.getLoginInfo()?.let {loginInfo ->
val serverVin = loginInfo.vin
val delineVin = CallerAutoPilotControlManager.getVIN()
OchChainLogManager.writeChainLog(
"checkVin",
"5分钟检测VIN服务器Vin:${serverVin}-----底盘Vin:${delineVin}", true,
CheckVinErrorDialog.EVENT_KEY_INFO_CHECK_VIN
)
if(serverVin.isNullOrBlank()){
return
}
if(delineVin.isNullOrBlank()){
return
}
if(serverVin!=delineVin){
val topActivity = ActivityUtils.getTopActivity()
topActivity?.let {
UiThreadHandler.post({
if(checkVinErrorDialog!=null&&checkVinErrorDialog!!.isShowing){
return@post
}
checkVinErrorDialog = CheckVinErrorDialog(it)
checkVinErrorDialog?.showDialog()
},UiThreadHandler.MODE.QUEUE)
}
}
}
}
fun load() {
OchChainLogManager.writeChainLogInit("初始化信息","初始checkVin 轮训")
}
}

View File

@@ -23,32 +23,36 @@ object OchChainLogManager {
const val EVENT_KEY_INFE_ERROR = "event_key_och_error"
const val EVENT_KEY_INFO_Net = "event_key_och_net"
const val EVENT_KEY_INFO_INIT = "event_key_och_init"
const val EVENT_KEY_INFO_SOCKET = "analytics_event_och_track_screen_msg"
const val EVENT_KEY_INFO_SOCKET_CONNECT = "analytics_event_och_track_screen_connect"
const val EVENT_KEY_INFO_AUTOPILOT_DISTANCE = "event_key_vehicle_start_autopilot_state_distance_15"
fun writeChainLogNet(info: String, changeInfo: String){
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_Net)
fun writeChainLogNet(title: String, info: String){
writeChainLog(title,info,true,EVENT_KEY_INFO_Net)
}
fun writeChainLogNetLanSocketConnect(info: String, changeInfo: String){
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET_CONNECT)
fun writeChainLogInit(title: String, info: String) {
writeChainLog(title,info,true,EVENT_KEY_INFO_INIT)
}
fun writeChainLogLanSocket(info: String, changeInfo: String,action:String){
fun writeChainLogNetLanSocketConnect(title: String, info: String){
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET_CONNECT)
}
fun writeChainLogLanSocket(title: String, info: String, action:String){
val map = hashMapOf<String, Any>()
map["action"] = action
writeChainLog(info,changeInfo,true,EVENT_KEY_INFO_SOCKET, map)
writeChainLog(title,info,true,EVENT_KEY_INFO_SOCKET, map)
}
@JvmStatic
fun writeChainLog(info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE) {
writeChainLog(info,changeInfo,upload,eventID,null)
fun writeChainLog(title: String, info: String, upload:Boolean = true, eventID:String=EVENT_KEY_INFE_WITH_CHANGE) {
writeChainLog(title,info,upload,eventID,null)
}
/**
* @param Info 订单详细信息
* @param changeInfo 变化信息
* @param title 订单详细信息
* @param info 变化信息
*/
@ChainLog(
linkChainLog = ChainConstant.CHAIN_TYPE_OCH,
@@ -57,10 +61,10 @@ object OchChainLogManager {
paramIndexes = [0,1]
)
@JvmStatic
fun writeChainLog(Info: String, changeInfo: String,upload:Boolean = true,eventID:String=EVENT_KEY_INFE_WITH_CHANGE,patch:HashMap<String, Any>?=null) {
fun writeChainLog(title: String, info: String, upload:Boolean = true, eventID:String=EVENT_KEY_INFE_WITH_CHANGE, patch:HashMap<String, Any>?=null) {
try {
d(SceneConstant.M_OCHCOMMON + TAG, Info)
d(SceneConstant.M_OCHCOMMON + TAG, changeInfo)
d(SceneConstant.M_OCHCOMMON + TAG, title)
d(SceneConstant.M_OCHCOMMON + TAG, info)
if(upload) {
val plateNum = AppConfigInfo.plateNumber
val params = HashMap<String, Any>()
@@ -68,8 +72,8 @@ object OchChainLogManager {
params["env"] = DebugConfig.getNetMode()
params["plate_number"] = if (TextUtils.isEmpty(plateNum)) "" else plateNum
params["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss)
params["info"] = Info
params["changeInfo"] = changeInfo
params["info"] = title
params["changeInfo"] = info
patch?.let {
params.putAll(it)
}

View File

@@ -19,7 +19,7 @@ object LanSocketManager : IReceivedMsgListener {
}
fun load(){
OchChainLogManager.writeChainLogInit("初始化信息","初始局域网监听和发送封装")
}
@JvmStatic

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/common_5F6582"/>
<corners android:radius="46dp"/>
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/common_A0B3DA"/>
<corners android:radius="@dimen/dp_80"/>
</shape>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="@dimen/dp_939"
android:layout_height="wrap_content"
android:background="@drawable/common_error_vin">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_error_head"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_60"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginEnd="@dimen/dp_60"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_46"
app:layout_constraintBottom_toTopOf="@+id/actv_error_body"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="VIN码不匹配" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_error_body"
android:layout_width="match_parent"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginEnd="@dimen/dp_60"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_41"
android:layout_marginBottom="@dimen/dp_39"
android:gravity="center"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_40"
app:layout_constraintBottom_toTopOf="@+id/actv_error_body_red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/actv_error_head"
android:text="请暂停运营并上报问题,待问题解决后用车" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_error_body_red"
android:layout_width="match_parent"
android:layout_marginStart="@dimen/dp_60"
android:layout_marginEnd="@dimen/dp_60"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@android:color/holo_red_dark"
android:textSize="@dimen/dp_40"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/actv_error_body"
android:text="【仍继续用车有安全风险!!!】" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_see"
android:layout_width="@dimen/dp_350"
android:layout_height="@dimen/dp_130"
android:layout_marginTop="40dp"
android:layout_marginBottom="@dimen/dp_80"
android:background="@drawable/common_error_vin_submit"
android:gravity="center"
android:text="我知道了"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_46"
app:layout_constraintTop_toBottomOf="@+id/actv_error_body_red"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -23,4 +23,6 @@
<color name="common_203555">#203555</color>
<color name="common_B3EFF6FF">#B3EFF6FF</color>
<color name="common_384270">#384270</color>
<color name="common_5F6582">#5F6582</color>
<color name="common_A0B3DA">#A0B3DA</color>
</resources>

View File

@@ -9,6 +9,8 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.och.common.module.biz.lansocket.LoginLanDriverSocket
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.device.checkvin.CheckVinManager
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.facade.constant.FacadeConst
/**
@@ -33,7 +35,9 @@ class FacadeDriverProvider : FacadeProvider() {
}else {
super.init(context)
LoginStatusManager.queryLoginStatusByNet()
LanSocketManager.load()
LoginLanDriverSocket.load()
CheckVinManager.load()
}
}

View File

@@ -3,6 +3,7 @@ package com.mogo.och.facade.route
import android.content.Context
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.och.common.module.biz.lansocket.LoginLanPassengerSocket
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.facade.constant.FacadeConst
/**
@@ -19,6 +20,7 @@ class FacadePassengerProvider : FacadeProvider() {
override fun init(context: Context) {
super.init(context)
LanSocketManager.load()
LoginLanPassengerSocket.load()
}

View File

@@ -7,6 +7,7 @@ import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
@@ -46,7 +47,7 @@ class ShuttlePassengerProvider : CommonServiceImpl() {
}
override fun getFragment(): Fragment {
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode) && DeviceUtils.isEB5Model()) {
MultiDisplayUtils.startActWithSecond(ActivityUtils.getTopActivity(), MediaPlayerActivity::class.java)
}
if(mPM2Fragment==null){

View File

@@ -102,5 +102,43 @@ public class OrderQueryRespBean extends BaseData {
startSiteAddr, startSitePoint, startSiteGcjPoint, endSiteId, endSiteAddr,
endSitePoint, endSiteGcjPoint, carNumber, createTime, startTime, travelDistance);
}
@Override
public String toString() {
return "Result{" +
"orderNo='" + orderNo + '\'' +
", orderType=" + orderType +
", orderStatus=" + orderStatus +
", businessType=" + businessType +
", startSiteId=" + startSiteId +
", startSiteAddr='" + startSiteAddr + '\'' +
", startSitePoint=" + startSitePoint +
", startSiteGcjPoint=" + startSiteGcjPoint +
", endSiteId=" + endSiteId +
", endSiteAddr='" + endSiteAddr + '\'' +
", endSitePoint=" + endSitePoint +
", endSiteGcjPoint=" + endSiteGcjPoint +
", carNumber='" + carNumber + '\'' +
", createTime=" + createTime +
", startTime=" + startTime +
", bookingTime=" + bookingTime +
", passengerPhone='" + passengerPhone + '\'' +
", passengerNum='" + passengerNum + '\'' +
", lineId=" + lineId +
", lineName='" + lineName + '\'' +
", csvFileUrl='" + csvFileUrl + '\'' +
", csvFileMd5='" + csvFileMd5 + '\'' +
", txtFileUrl='" + txtFileUrl + '\'' +
", txtFileMd5='" + txtFileMd5 + '\'' +
", contrailSaveTime=" + contrailSaveTime +
", carModel='" + carModel + '\'' +
", csvFileUrlDPQP='" + csvFileUrlDPQP + '\'' +
", csvFileMd5DPQP='" + csvFileMd5DPQP + '\'' +
", txtFileUrlDPQP='" + txtFileUrlDPQP + '\'' +
", txtFileMd5DPQP='" + txtFileMd5DPQP + '\'' +
", contrailSaveTimeDPQP=" + contrailSaveTimeDPQP +
", travelDistance=" + travelDistance +
'}';
}
}
}

View File

@@ -15,5 +15,22 @@ public class OrdersInServiceQueryRespBean extends BaseData {
public static class Result {
public List<OrderQueryRespBean.Result> servicing; //服务中订单
public List<OrderQueryRespBean.Result> waitService; //待服务订单
@Override
public String toString() {
return "Result{" +
"servicing=" + servicing +
", waitService=" + waitService +
'}';
}
}
@Override
public String toString() {
return "OrdersInServiceQueryRespBean{" +
"data=" + data +
", code=" + code +
", msg='" + msg + '\'' +
'}';
}
}

View File

@@ -39,7 +39,7 @@ object TaxiServiceManager {
SharedPrefsMgr.getInstance().sn
)
.transformTry()
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService",false))
.subscribe(OchCommonSubscribeImpl(context, callback, "queryOrdersInAndWaitService"))
}
/**

View File

@@ -1,7 +1,7 @@
{
"mogo": {
"qa": {
"och_url": "https://tech-qa.zhidaohulian.com",
"och_url": "https://tech-qa.zhidaozhixing.com",
"shuttle_url": "https://och-driver-qa.zhidaozhixing.com",
"sweeper_url": "https://och-driver-qa.zhidaozhixing.com",
"passport_url": "",
@@ -18,7 +18,7 @@
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
},
"online": {
"och_url": "https://tech.zhidaohulian.com",
"och_url": "https://tech.zhidaozhixing.com",
"shuttle_url": "https://och-driver.zhidaozhixing.com",
"sweeper_url": "https://och-driver.zhidaozhixing.com",
"passport_url": "",
@@ -33,23 +33,6 @@
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10028",
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
},
"demo": {
"och_url": "http://tech-dev.zhidaohulian.com",
"shuttle_url": "https://och-driver-dev.zhidaozhixing.com",
"sweeper_url": "https://och-driver-dev.zhidaozhixing.com",
"passport_url": "",
"socket_base_url": "",
"socket_tech_url": "",
"eagle_mis_url": "",
"eagle_dns_url": "",
"bind_driver_qr_url": "",
"chart_socket_url":"",
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10028",
"secure_product_secret": "6b4c4db8286547b78b1def2d76f70fb3"
}
},
"dali": {
@@ -86,23 +69,6 @@
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10031",
"secure_product_secret": "bda7164f3e8241848d011dcc710f89db"
},
"demo": {
"och_url": "https://och-a.zhidaozhixing.com",
"shuttle_url": "https://och-a.zhidaozhixing.com",
"sweeper_url": "https://och-a.zhidaozhixing.com",
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
"eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com/",
"eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com/",
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s",
"chart_socket_url":"wss://acp-eh.zhidaozhixing.com/ws",
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10031",
"secure_product_secret": "bda7164f3e8241848d011dcc710f89db"
}
},
"yantai": {
@@ -139,23 +105,6 @@
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10032",
"secure_product_secret": "1514404272484a48b478d082911fcaf9"
},
"demo": {
"och_url": "https://och-a.zhidaozhixing.com",
"shuttle_url": "https://och-a.zhidaozhixing.com",
"sweeper_url": "https://och-a.zhidaozhixing.com",
"passport_url": "https://och-a.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://och-a.zhidaozhixing.com/arch/",
"eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/",
"eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/",
"bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s",
"chart_socket_url":"",
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10032",
"secure_product_secret": "1514404272484a48b478d082911fcaf9"
}
},
"saas": {
@@ -190,22 +139,6 @@
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10030",
"secure_product_secret": "85dcf995430746f6b1c2d4fe6817ff2e"
},
"demo": {
"och_url": "http://tech-dev.zhidaohulian.com",
"shuttle_url": "https://mogogo-driver.zhidaozhixing.com",
"passport_url": "https://mogogo-driver.zhidaozhixing.com/arch/passport/",
"socket_base_url": "https://mogogo-driver.zhidaozhixing.com/arch/push/",
"socket_tech_url": "https://mogogo-driver.zhidaozhixing.com/arch/",
"eagle_mis_url": "https://mogogo.zhidaozhixing.com/",
"eagle_dns_url": "https://mogogo.zhidaozhixing.com/",
"bind_driver_qr_url": "",
"chart_socket_url":"",
"secure_active_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/active",
"secure_refresh_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/refresh",
"secure_auth_url":"https://mygateway.zhidaozhixing.com/openapi/security/deviceCert/auth",
"secure_product_id": "10030",
"secure_product_secret": "85dcf995430746f6b1c2d4fe6817ff2e"
}
}
}

View File

@@ -225,7 +225,7 @@ ext {
btrace : "com.bytedance.btrace:rhea-core:2.0.0",
mofang_runtime : "com.mogo.eagle.core.mofang:runtime:2.0.11",
log_runtime : "com.mogo.eagle.core.log.record:runtime:2.0.10",
log_runtime : "com.mogo.eagle.core.log.record:runtime:2.0.30",
// 安全证书
passport_secret : "com.zhidaoauto:sdk-java:1.0.6-SNAPSHOT",

View File

@@ -957,6 +957,15 @@ class MoGoAutopilotControlProvider :
return AdasManager.getInstance().protocolVersion
}
override fun getVIN(): String {
val carConfig = AdasManager.getInstance().carConfig
return if(carConfig != null){
carConfig.vinCode
}else{
""
}
}
override fun connectSpecifiedServer(ip: String) {
ThreadUtils.getIoPool().submit {
NSDNettyManager.getInstance().connectSpecifiedServer(

View File

@@ -9,4 +9,12 @@ public class BaseData implements Serializable, Cloneable {
public int code = -1;
public String msg;
@Override
public String toString() {
return "BaseData{" +
"code=" + code +
", msg='" + msg + '\'' +
'}';
}
}

View File

@@ -337,6 +337,11 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
*/
fun getProtocolVersion(): Int
/**
* 获取VIN车辆识别代号
*/
fun getVIN(): String
fun connectSpecifiedServer(ip: String)
/**

View File

@@ -617,6 +617,13 @@ object CallerAutoPilotControlManager {
return providerApi?.getProtocolVersion() ?: 0
}
/**
* 获取VIN车辆识别代号
*/
fun getVIN(): String{
return providerApi?.getVIN()?:""
}
fun connectSpecifiedServer(ip: String) {
providerApi?.connectSpecifiedServer(ip)
}

View File

@@ -29,6 +29,8 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
private var vehicleState: VehicleStateOuterClass.VehicleState? = null
private var chassisStates: ChassisStatesOuterClass.ChassisStates? = null
private var vehicleReceiveTime: Long = 0
private var chassisReceiveTime: Long = 0
init {
isAutopilotAbility = false
@@ -36,10 +38,12 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
}
fun setVehicleState(vehicleState: VehicleStateOuterClass.VehicleState?) {
vehicleReceiveTime = System.currentTimeMillis()
this.vehicleState = vehicleState;
}
fun setChassisStates(chassisStates: ChassisStatesOuterClass.ChassisStates?) {
chassisReceiveTime = System.currentTimeMillis()
this.chassisStates = chassisStates;
}
@@ -77,6 +81,7 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
val vehicleStateObject = JSONObject()
if (chassisStates != null) {
try {
chassisStatesObject.put("receive_time", chassisReceiveTime)
if (chassisStates!!.hasHeader()) {
chassisStatesObject.put(
"data_header", TextFormat.printer().escapingNonAscii(false).printToString(
@@ -128,6 +133,7 @@ object CallerAutopilotActionsListenerManager : CallerBase<IMoGoAutopilotActionsL
}
if (vehicleState != null) {
vehicleStateObject.put("receive_time", vehicleReceiveTime)
if (vehicleState!!.hasHeader()) {
vehicleStateObject.put(
"data_header", TextFormat.printer().escapingNonAscii(false).printToString(