Merge branch 'dev_robobus-d_241202_6.9.0_yyk' into dev_robotaxi-d_241210_6.9.0

# Conflicts:
#	gradle.properties
This commit is contained in:
yangyakun
2024-12-18 18:29:05 +08:00
1087 changed files with 4299 additions and 22324 deletions

View File

@@ -62,6 +62,8 @@ dependencies {
compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper
implementation project(":OCH:common:common")
implementation project(":OCH:common:data")
implementation project(":OCH:common:bridge")
compileOnly project(":libraries:mogo-map")
androidTestImplementation rootProject.ext.dependencies.androidxjunit

View File

@@ -1,16 +1,19 @@
package com.magic.mogo.och.charter
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.magic.mogo.och.charter.fragment.DriverM1Fragment
import com.magic.mogo.och.charter.manager.CharterAnalyticsManager
import com.magic.mogo.och.charter.manager.CharterTrajectoryManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.bridge.ui.autopilot.AutopilotState
/**
@@ -29,14 +32,22 @@ class CharterDriverProvider : CommonServiceImpl() {
fragment = DriverM1Fragment()
}
OchAutopilotAnalytics.ochEventKey = CharterAnalyticsManager.getInstance()
CharterTrajectoryManager.load()
return fragment!!
}
override fun resetFragment() {
CharterTrajectoryManager.release()
fragment = null
OchAutopilotAnalytics.ochEventKey = null
}
override fun createStartAutopilotView(context: Context?): View? {
return context?.let {
AutopilotState(it)
}
}
override fun init(context: Context) {
CallerLogger.d(SceneConstant.M_TAXI + tag, "init")
}

View File

@@ -2,7 +2,7 @@ package com.magic.mogo.och.charter.manager;
import androidx.annotation.NonNull;
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchEventKey;
import com.mogo.och.bridge.autopilot.autopilot.IOchEventKey;
public class CharterAnalyticsManager implements IOchEventKey {

View File

@@ -14,22 +14,22 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e
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.GsonUtils
import com.mogo.och.bridge.autopilot.trajectory.ITrajectoryListListener
import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.functions.Function
import io.reactivex.schedulers.Schedulers
import mogo_msg.MogoReportMsg.MogoReportMessage
import java.util.concurrent.TimeUnit
/**
* Bus轨迹管理给MEC下发用于轨迹下载的信息
* Created on 2022/6/23
*/
object CharterTrajectoryManager {
object CharterTrajectoryManager : ITrajectoryListListener {
private const val TAG = "CharterTrajectoryManager"
private var mAutoPilotLine: AutoPilotLine? = null
@@ -37,6 +37,14 @@ object CharterTrajectoryManager {
private var mLineName = ""
private var mSendReqDisposable: Disposable? = null
fun load(){
TrajectoryManager.addListener(TAG,this)
}
fun release(){
TrajectoryManager.removeListener(TAG)
}
/**
* 同步Bus路线信息
*/
@@ -54,57 +62,34 @@ object CharterTrajectoryManager {
}
}
fun onAutopilotGuardian(guardianInfo: MogoReportMessage?, lineId: Long) {
onAutopilotGuardian(guardianInfo)
override fun onDownLoadStart(lineId: Long) {
stopTrajReqLoop()
}
/**
* 接口MEC反馈的常规信息MAP v2.5.0新增轨迹相关信息)
* @param guardianInfo
*/
fun onAutopilotGuardian(guardianInfo: MogoReportMessage?) {
if (guardianInfo == null || !guardianInfo.hasCode()) return
if ("ISYS_INIT_TRAJECTORY_START" == guardianInfo.code) {
// 1. 轨迹管理_轨迹开始下载本地已有对应轨迹也触发
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹开始下载")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹开始下载", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
stopTrajReqLoop()
} else if ("ISYS_INIT_TRAJECTORY_SUCCESS" == guardianInfo.code) {
// 2. 轨迹管理_轨迹下载成功本地已有对应轨迹也触发
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载成功")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载成功", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
stopTrajReqLoop()
} else if ("ISYS_INIT_TRAJECTORY_FAILURE" == guardianInfo.code) {
// 3. 轨迹管理_轨迹下载失败本地无对应轨迹
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地无对应轨迹")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地无对应轨迹", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
// ToastUtils.showShort("轨迹下载失败,本地无对应轨迹");
} else if ("ISYS_INIT_TRAJECTORY_WARNING" == guardianInfo.code) {
// 4. 轨迹管理_轨迹下载失败本地有对应轨迹认为成功
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() " + "轨迹下载失败,本地有对应轨迹,认为成功")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载失败,本地有对应轨迹,认为成功", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
// ToastUtils.showShort("轨迹下载失败,本地有对应轨迹,认为成功");
} else if ("ISYS_INIT_TRAJECTORY_TIMEOUT" == guardianInfo.code) {
// 5. 轨迹管理_轨迹下载超时
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() 轨迹下载超时")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 轨迹下载超时", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
} else if ("EMAP_ATTITUDE_INIT_FAILED" == guardianInfo.getCode()) {
// 收到ssm的自动驾驶变为ready再次下发轨迹下载.解决域控重启或者102域控启动太早107节点初始化未完成导致的轨迹未进行下载。
d(SceneConstant.M_CHARTER_D + TAG, "onAutopilotGuardian() ssm ready再次发起下载")
OchChainLogManager.writeChainLog("轨迹监控","onAutopilotGuardian() 当前位置距离轨迹距离大于15m", eventID = OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
DriverM1Model.get().getBusOrderResult()?.lineId?.let {
syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!)
}
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.OPERATION,
OperationMsg(
System.currentTimeMillis(), "请尽快操作车辆至适当位置掉头!", -1
)
override fun onDownLoadSuccess(lineId: Long) {
stopTrajReqLoop()
}
override fun onDownLoadReady(lineId: Long) {
DriverM1Model.get().getBusOrderResult()?.lineId?.let {
syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!)
}
}
override fun onDistanceWithTrajectory(lineId: Long) {
super.onDistanceWithTrajectory(lineId)
DriverM1Model.get().getBusOrderResult()?.lineId?.let {
syncTrajectoryInfo(it, DriverM1Model.get().getBusOrderResult()?.lineName!!)
}
CallerMsgBoxManager.saveMsgBox(
MsgBoxBean(
MsgBoxType.OPERATION,
OperationMsg(
System.currentTimeMillis(), "请尽快操作车辆至适当位置掉头!", -1
)
)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot)
}
)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getTopActivity(), R.raw.startautopilot)
}
private fun setupAutoPilotLine() {

View File

@@ -35,15 +35,16 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.i
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback
import com.mogo.och.bridge.autopilot.callback.OchAdasStartFailureCallback
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorStatusManager
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.startLoopAbnormalFactors
import com.mogo.och.common.module.manager.socket.cloud.AbnormalFactorsLoopManager.stopLoopAbnormalFactors
@@ -66,7 +67,7 @@ import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.*
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.data.bean.*
import com.mogo.och.data.bean.LineInfo
/**
* @author: wangmingjun

View File

@@ -18,16 +18,15 @@ 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.socket.cloud.OCHSocketMessageManager.OPERATION_ROAD_SIDE_TYPE
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.DateTimeUtil
import mogo_msg.MogoReportMsg
/**
* @author: wangmingjun
@@ -124,10 +123,6 @@ class DriverM1Presenter(view: DriverM1Fragment?) :
DriverM1Model.get().pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp()
,context.getString(R.string.charter_last_15_minutes))
}
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?, lineId: Long) {
CharterTrajectoryManager.onAutopilotGuardian(guardianInfo,lineId)
}
override fun onAutopilotArriveAtStation(arrivalNotification: ArrivedStation?) {
DriverM1Model.get().onAutopilotArriveAtStation()

View File

@@ -8,7 +8,7 @@ import com.magic.mogo.och.charter.R
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.common.module.manager.DriverMoFangFunctionManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
import kotlinx.android.synthetic.main.driver_mofang_function_view.view.*

View File

@@ -14,8 +14,8 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager

View File

@@ -6,7 +6,7 @@ import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import kotlin.math.abs
class CarStatusViewModel: ViewModel(), IMoGoAutopilotStatusListener,

View File

@@ -82,21 +82,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_71"
app:layout_constraintEnd_toEndOf="@+id/viewLimitingVelocity"
app:layout_constraintEnd_toEndOf="parent"
app:layout_goneMarginEnd="40dp"
app:layout_goneMarginTop="@dimen/dp_236"
android:visibility="invisible"
app:layout_constraintTop_toBottomOf="@+id/viewLimitingVelocity"/>
app:layout_constraintTop_toBottomOf="@+id/ivCameraIcon"/>
<com.mogo.eagle.core.function.hmi.ui.widget.GreenWaveView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_71"
app:layout_constraintEnd_toEndOf="@+id/viewLimitingVelocity"
app:layout_constraintEnd_toEndOf="@+id/viewTrafficLightVr"
app:layout_constraintTop_toBottomOf="@+id/viewTrafficLightVr"
app:layout_goneMarginEnd="40dp"
app:layout_goneMarginTop="@dimen/dp_236"
android:visibility="invisible"
app:layout_constraintTop_toBottomOf="@+id/viewLimitingVelocity"/>
android:visibility="invisible"/>
<!--红绿灯-->
@@ -197,7 +197,7 @@
android:layout_width="@dimen/dp_142"
android:layout_height="@dimen/dp_142"/>
<com.mogo.och.common.module.wigets.map.drawline.LineView
<com.mogo.och.bridge.ui.drawline.LineView
android:id="@+id/lineView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/reportworkorderview"

View File

@@ -55,6 +55,7 @@ dependencies {
implementation rootProject.ext.dependencies.arouter
implementation rootProject.ext.dependencies.androidxrecyclerview
implementation rootProject.ext.dependencies.material
implementation project(':OCH:common:bridge')
kapt rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.rxandroid
implementation rootProject.ext.dependencies.androidxconstraintlayout

View File

@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.bridge.ui.autopilot.AutopilotState
import com.mogo.och.charter.passenger.ui.MainFragment
import com.mogo.och.charter.passenger.ui.statusbar.StatusBarView
import com.mogo.och.common.module.constant.OchCommonConst
@@ -47,4 +48,10 @@ class CharterPassengerProvider : CommonServiceImpl() {
CallerLogger.d(SceneConstant.M_TAXI_P + tag, "init")
}
override fun createStartAutopilotView(context: Context?): View? {
return context?.let {
AutopilotState(it)
}
}
}

View File

@@ -2,7 +2,7 @@ package com.mogo.och.charter.passenger.bean.response
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.BaseData
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
/**

View File

@@ -41,17 +41,17 @@ import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.biz.login.ILoginCallback
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.socket.lan.LanSocketManager
import com.mogo.och.common.module.manager.socket.lan.LedScreenManager
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.PinYinUtil
import com.mogo.och.common.module.voice.VoiceNotice

View File

@@ -2,12 +2,11 @@ package com.mogo.och.charter.passenger.model
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.util.TAG
import com.mogo.och.common.module.manager.audition.AuditionManager
import com.mogo.och.common.module.manager.audition.PlayState
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable

View File

@@ -32,13 +32,13 @@ import com.mogo.och.charter.passenger.ui.MainFragment
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteName
import com.mogo.och.charter.passenger.ui.overmapview.MakerWithSiteNamewithCheck
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback
import com.mogo.och.bridge.device.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.stopside.OCHPlanningActionsCallback
import com.mogo.och.common.module.manager.stopside.StopSideStatus
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import me.jessyan.autosize.utils.AutoSizeUtils

View File

@@ -13,8 +13,8 @@ import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.common.module.manager.socket.cloud.OCHSocketMessageManager
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg
import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg
import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg

View File

@@ -5,7 +5,7 @@ import android.util.AttributeSet
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class CloseDoorView @JvmOverloads constructor(

View File

@@ -19,7 +19,7 @@ import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.callback.ICharterPassengerAutoStatusChangeCallback
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.bridge.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper

View File

@@ -5,7 +5,7 @@ import android.util.AttributeSet
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.ui.bottom.BottomClickView
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class OpenDoorView @JvmOverloads constructor(

View File

@@ -18,7 +18,7 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.och.charter.passenger.R
import com.mogo.och.charter.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
import com.mogo.och.charter.passenger.utils.CharterVoiceManager
import com.mogo.och.common.module.manager.device.LightAirconditionDoorManager
import com.mogo.och.bridge.device.LightAirconditionDoorManager
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_closedoor
import kotlinx.android.synthetic.main.charter_p_order_end.iv_end_order_opendoor

View File

@@ -10,7 +10,7 @@ import com.mogo.och.charter.passenger.callback.IDistanceCallback
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.model.IOrderStatusChangeListener
import com.mogo.och.charter.passenger.model.OrderStatusEnum
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import kotlin.math.abs

View File

@@ -25,7 +25,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.ChangeDestMsg
import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType
import com.mogo.och.common.module.manager.socket.lan.bean.LineSite
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.common.module.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.stopside.StopSideManager
import com.mogo.och.common.module.manager.loop.BizLoopManager

View File

@@ -6,11 +6,11 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.device.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.device.data.AirconditionStatus
import com.mogo.och.common.module.manager.device.data.HeaterStatue
import com.mogo.och.common.module.manager.device.data.LightStatus
import com.mogo.och.bridge.device.callback.LightAirconditionDoorCallback
import com.mogo.och.bridge.device.LightAirconditionDoorStatusManager
import com.mogo.och.bridge.device.data.AirconditionStatus
import com.mogo.och.bridge.device.data.HeaterStatue
import com.mogo.och.bridge.device.data.LightStatus
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable

View File

@@ -25,8 +25,8 @@ import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse
import com.mogo.och.charter.passenger.model.CharterPassengerModel
import com.mogo.och.charter.passenger.model.OrderStatusEnum
import com.mogo.och.charter.passenger.ui.debugview.DebugEvent
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.manager.loop.BizLoopManager

View File

@@ -4,8 +4,7 @@ import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.network.utils.GsonUtil
import com.mogo.eagle.core.utilcode.util.CoordinateTransform
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import org.json.JSONException
import org.json.JSONObject
import org.junit.Test

View File

@@ -53,6 +53,8 @@ dependencies {
implementation project(':OCH:common:common')
implementation rootProject.ext.dependencies.arouter
implementation project(':OCH:common:data')
implementation project(':OCH:common:bridge')
kapt rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {

View File

@@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.config.HdMapBuildConfig
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.biz.login.callback.ILoginViewCallback
@@ -17,7 +18,6 @@ import com.mogo.och.biz.login.model.LoginModel
import com.mogo.och.biz.login.ui.LoginFragment
import com.mogo.och.biz.login.ui.LoginPassengerFragment
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.biz.login.LoginInfo
import com.mogo.och.common.module.biz.login.LoginService
import com.mogo.och.common.module.biz.login.LoginStatusManager
@@ -43,7 +43,7 @@ class LoginProvider : LoginService {
private val tag = LoginProvider::class.java.simpleName
private var loginFragment: Fragment?=null
private var loginStatus: LoginStatusEnum = LoginStatusEnum.None
private var businessEnum: BusinessEnum = BusinessEnum.None
private var businessEnum = Product.NONE
private var openOrderStatusEnum: OpenOrderStatusEnum = OpenOrderStatusEnum.None
private var carModel: Carmodel = Carmodel.T2
private var loginInfo: LoginInfo? = null
@@ -220,12 +220,12 @@ class LoginProvider : LoginService {
override fun setBusinessType(type: Int) {
CallerLogger.d(tag, "setBusinessType:${type}")
if (businessEnum.code != type) {
this.businessEnum = BusinessEnum.valueOf(type)
this.businessEnum = Product.valueOf(type)
LoginStatusManager.invokeLBusinessTypeChange(this.businessEnum)
}
}
override fun getBusinessType(): BusinessEnum {
override fun getBusinessType(): Product {
CallerLogger.d(tag, "getBusinessType")
return businessEnum
}

View File

@@ -1,7 +1,7 @@
package com.mogo.och.biz.login.bean;
import com.mogo.eagle.core.data.map.MogoLocation;
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager;
import com.mogo.och.bridge.autopilot.location.OchLocationManager;
/**
* Created by yyk on 2021/8/19

View File

@@ -11,13 +11,14 @@ import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.Utils
import com.mogo.och.biz.R
import com.mogo.och.biz.login.bean.DriverStatusQueryRespBean
import com.mogo.och.biz.login.bean.TaxiLoginReqBean
@@ -25,11 +26,11 @@ import com.mogo.och.biz.login.bean.TaxiLoginRespBean
import com.mogo.och.biz.login.bean.TaxiLogoutReqBean
import com.mogo.och.biz.login.callback.ITaxiLoginCallback
import com.mogo.och.biz.login.net.OchCommonServiceManager
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.common.module.biz.login.LoginStatusEnum
import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf
import com.mogo.och.common.module.biz.login.LoginStatusManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.cache.ISpCallback
import com.mogo.och.common.module.manager.cache.OchSPManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey
@@ -39,8 +40,6 @@ import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.ToastUtilsOch
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import com.mogo.och.data.manager.cache.CacheDataManager
import com.mogo.skin.Skin
import com.mogo.skin.SkinManager
import io.reactivex.Observable
import io.reactivex.disposables.Disposable
import java.util.concurrent.TimeUnit
@@ -55,7 +54,7 @@ import java.util.concurrent.TimeUnit
@SuppressLint("StaticFieldLeak")
object LoginModel {
private const val TAG = "LoginModel"
private const val TAG = "${M_OCHCOMMON}LoginModel"
private var mContext: Context? = null
var iTaxiLoginCallback: ITaxiLoginCallback? = null
private var subscribe: Disposable? = null
@@ -72,6 +71,13 @@ object LoginModel {
}
}
private val snChangeListener = object :ISpCallback{
override fun snChange() {
d(TAG, "sn 发生变化${OchSPManager.getSn()}")
queryCarStatus(false)
}
}
init {
mContext = AbsMogoApplication.getApp()
IntentManager.getInstance()
@@ -91,10 +97,14 @@ object LoginModel {
}
fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) {
d(TAG,"setiTaxiLoginCallback")
OchSPManager.addListener(TAG,snChangeListener)
LoginModel.iTaxiLoginCallback = iTaxiLoginCallback
}
fun release() {
d(TAG,"release")
OchSPManager.remove(TAG)
iTaxiLoginCallback = null
}
@@ -184,19 +194,19 @@ object LoginModel {
* 8、登录页面关闭后查下状态
*/
fun queryCarStatus(readCatche:Boolean = true) {
Log.d("登录","设置源:queryCarStatus")
mContext?.let {
Log.d(TAG,"设置源:queryCarStatus")
if(readCatche){
val logingInfoJson = OchSPManager.getString(loginInfoKey)
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
logingInfoJson?.let {logininfo->
if(logininfo.startsWith(timeText)){
val json = logingInfoJson.replace(timeText,"" )
val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java)
go2LoginInfo(oldLoginInfo,"缓存获取")
val logingInfoJson = OchSPManager.getString(loginInfoKey)
val timeText = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd)
logingInfoJson?.let {logininfo->
if(logininfo.startsWith(timeText)){
val json = logingInfoJson.replace(timeText,"" )
val oldLoginInfo = GsonUtils.fromJson(json, DriverStatusQueryRespBean::class.java)
go2LoginInfo(oldLoginInfo,"缓存获取")
}
}
}
}
OchCommonServiceManager.queryDriverServiceStatus(it, object : OchCommonServiceCallback<DriverStatusQueryRespBean> {
override fun onSuccess(data: DriverStatusQueryRespBean?) {
val map: MutableMap<String, Any> = HashMap()
@@ -244,8 +254,7 @@ object LoginModel {
@Synchronized
private fun go2LoginInfo(data: DriverStatusQueryRespBean?, source: String) {
CallerLogger.d(TAG,"设置源:${source}")
Log.d("登录","设置源:${source}")
d(TAG,"设置源:${source}")
data?.let {
LoginStatusManager.setLoginInfo(data.data)
}
@@ -271,7 +280,7 @@ object LoginModel {
val loginInfo4Json = GsonUtils.toJson(data)
OchSPManager.putString(loginInfoKey,timeText+loginInfo4Json)
LoginStatusManager.setOpenOrderType(data.data.servingStatus)
d(SceneConstant.M_TAXI + TAG, "登录信息:$data")
d(TAG, "登录信息:$data")
loginSuccess(data)
}
}
@@ -280,7 +289,7 @@ object LoginModel {
fun logout() {
val location4Login = TaxiLogoutReqBean.Location4Login()
if (FunctionBuildConfig.isOffLine) {
CallerLogger.d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}")
d(TAG, "离线模式登录后退出 setLoginStatus:${LoginStatusEnum.Logout}")
LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
FunctionBuildConfig.isOffLine = false
return
@@ -308,14 +317,14 @@ object LoginModel {
override fun onFail(code: Int, msg: String) {
ToastUtilsOch.showWithCodeMessage(code, msg)
if(!LoginStatusManager.isLogin()){
LoginStatusManager.invokeLBusinessTypeChangeDebug(BusinessEnum.None)
LoginStatusManager.invokeLBusinessTypeChangeDebug(Product.NONE)
}
}
})
}
fun loginSuccess(data: DriverStatusQueryRespBean?) {
CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
d(TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
if (LoginStatusManager.isLogin()) {
SharedPrefsMgr.getInstance().putString("och_account", data?.data?.phone)
} else {
@@ -336,13 +345,13 @@ object LoginModel {
fun loginFail(isLogin: Boolean) {
CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin")
d(TAG, "loginFail:$isLogin")
updateLoginLocalStatus(0)
}
fun gotoOfflineMode() {
FunctionBuildConfig.isOffLine = true
CallerLogger.d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}")
d(TAG, "离线模式登录 setLoginStatus:${LoginStatusEnum.Login}")
LoginStatusManager.setLoginStatus(LoginStatusEnum.Login)
}

View File

@@ -20,6 +20,7 @@ import com.mogo.och.common.module.network.OchCommonSubscribeImpl
import com.mogo.och.common.module.network.interceptor.transformTry
import com.mogo.commons.env.ProjectUtils
import com.mogo.och.common.module.manager.cache.OchSPManager
import com.mogo.och.common.module.utils.RxUtils
object OchCommonServiceManager {
@@ -135,7 +136,6 @@ object OchCommonServiceManager {
context: Context,
callback: OchCommonServiceCallback<DriverStatusQueryRespBean>?
) {
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态");
val sn =
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
OchSPManager.getSn()
@@ -147,8 +147,10 @@ object OchCommonServiceManager {
return
}
if(FunctionBuildConfig.ochdebug){
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式");
return
}
CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}");
if (ProjectUtils.isMogo()) {
ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus(
MoGoAiCloudClientConfig.getInstance().serviceAppId,

View File

@@ -9,8 +9,8 @@ import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.och.biz.R
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.biz.login.LoginStatusManager
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_bus
import kotlinx.android.synthetic.main.biz_login_business_view.view.actv_business_charter
@@ -55,14 +55,14 @@ class BusinessView : ConstraintLayout, BusinessViewModel.IErrorInfoViewCallback
viewModel?.setDistanceCallback(this)
actv_business_shuttle.onClick { swtichBusiness(BusinessEnum.Shuttle) }
actv_business_bus.onClick { swtichBusiness(BusinessEnum.Bus) }
actv_business_taxi.onClick { swtichBusiness(BusinessEnum.Taxi) }
actv_business_charter.onClick { swtichBusiness(BusinessEnum.Charter) }
actv_business_shuttle.onClick { swtichBusiness(Product.SHUTTLE) }
actv_business_bus.onClick { swtichBusiness(Product.BUS) }
actv_business_taxi.onClick { swtichBusiness(Product.TAXI) }
actv_business_charter.onClick { swtichBusiness(Product.CHARTER) }
actv_debugview.onClick { ToggleDebugView.toggleDebugView.toggle(context) }
}
private fun swtichBusiness(businessEnum: BusinessEnum) {
private fun swtichBusiness(businessEnum: Product) {
LoginStatusManager.invokeLBusinessTypeChangeDebug(businessEnum)
visibility = GONE
}

View File

@@ -29,15 +29,6 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main {
res.srcDirs = [
'src/main/res',
'src/main/res/ani',
]
}
}
}
dependencies {
@@ -48,12 +39,23 @@ dependencies {
implementation rootProject.ext.dependencies.androidxappcompat
implementation rootProject.ext.dependencies.material
implementation rootProject.ext.dependencies.rxandroid
implementation rootProject.ext.dependencies.arouter
implementation project(':libraries:mogo-adas-data')
implementation project(':core:mogo-core-data')
implementation project(':foudations:mogo-commons')
implementation project(':OCH:common:common')
implementation project(':OCH:common:data')
implementation rootProject.ext.dependencies.amapnavi3dmap
testImplementation project(':OCH:common:bridge')
testImplementation 'junit:junit:4.12'
api project(":OCH:common:common")
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
api rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogo_core_function_call
api rootProject.ext.dependencies.mogo_core_function_map
}else {
api project(":core:mogo-core-utils")
implementation project(':core:mogo-core-function-call')
api project(':core:function-impl:mogo-core-function-map')
}
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mogo.och.taxi.passenger.common">
package="com.mogo.och.bridge">
</manifest>

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot;
package com.mogo.och.bridge.autopilot;
import android.content.Context;
@@ -14,8 +14,8 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.ParseVersionUtils;
import com.mogo.och.common.module.callback.OchAdasStartFailureCallback;
import com.mogo.och.common.module.manager.autopilot.line.LineManager;
import com.mogo.och.bridge.autopilot.callback.OchAdasStartFailureCallback;
import com.mogo.och.bridge.autopilot.line.LineManager;
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics;
import com.zhjt.mogo.adas.data.bean.LaunchConditionData;
import com.zhjt.mogo.adas.data.bean.UnableLaunchReason;

View File

@@ -1,7 +1,7 @@
package com.mogo.och.common.module.manager.autopilot.autopilot;
package com.mogo.och.bridge.autopilot.autopilot;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation;
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation;
import com.zhjt.mogo.adas.data.AdasConstants;
import mogo.telematics.pad.MessagePad;

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.autopilot;
package com.mogo.och.bridge.autopilot.autopilot;
public interface IOchEventKey {
// 无人化taxi event_key_unmanned_taxi_start_service *

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.autopilot
package com.mogo.och.bridge.autopilot.autopilot
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -8,10 +8,10 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxType
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.SessionWithTime
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.autopilot.bean.SessionWithTime
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import java.util.concurrent.atomic.AtomicReference
@@ -48,7 +48,7 @@ object OchAutoPilotManager {
if(sessionInfo==null){
return true
}else{
if(currentTimeMillis-sessionInfo.setTime>=OchAutopilotAnalytics.LOOP_PERIOD_16S){
if(currentTimeMillis-sessionInfo.setTime>= OchAutopilotAnalytics.LOOP_PERIOD_16S){
clearGlobalSessionId("检测session 自带的时间 ${currentTimeMillis}_${sessionInfo.setTime}_${sessionInfo.sessionId}")
return true
}else{

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.autopilot
package com.mogo.och.bridge.autopilot.autopilot
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -13,14 +13,13 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryManager
import com.mogo.och.bridge.autopilot.autopilot.bean.ArrivedStation
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.bridge.autopilot.trajectory.TrajectoryManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.CallerBase
import com.zhjt.mogo.adas.common.MessageType
import com.zhjt.mogo.adas.data.AdasConstants
import com.zhjt.mogo.adas.data.bean.MogoReport
import com.zhjt.mogo.adas.data.bean.ReceivedAck
import com.zhjt.mogo.adas.data.bean.ReceivedAck.Status
import fsm.Fsm2024
@@ -55,6 +54,12 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
}
}
private var _orderIdFromFSM:String? by Delegates.observable("") { _, oldValue, newValue ->
if (oldValue != newValue) {
LineManager.compareFSMAndOchOrderId(newValue)
}
}
val canStartAutopilotFromFSM:Boolean
get() = _canStartAutopilotFromFSM
@@ -134,12 +139,7 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {
super.onAutopilotGuardian(guardianInfo)
var lineId = -1L
if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START == guardianInfo?.code ||
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS == guardianInfo?.code ||
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE == guardianInfo?.code ||
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_WARNING == guardianInfo?.code ||
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_TIMEOUT == guardianInfo?.code
) {
guardianInfo?.let {
val msg = guardianInfo.msg
try {
val regex = Regex("lineid:(\\d+)")
@@ -161,16 +161,9 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
}
}
if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS == guardianInfo?.code){
TrajectoryManager.addDownLoadSuccessLine(lineId)
}
if (MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE == guardianInfo?.code){
// 更新轨迹没有更新lineId 第二次下载失败 删除App成功缓存(概率很低)
TrajectoryManager.removeDownLoadSuccessLine(lineId)
}
}
TrajectoryManager.carDownLoadTrajectoryLog(guardianInfo?.code)
TrajectoryManager.carDownLoadTrajectoryLog(guardianInfo?.code,lineId)
M_LISTENERS.forEach {
val listener = it.value
@@ -215,7 +208,7 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
}
override fun invoke(canStartAutopilot: Boolean) {
this.canStartAutopilot = canStartAutopilot
OchAutoPilotStatusListenerManager.canStartAutopilot = canStartAutopilot
}
override fun onAutopilotStatusResponseFromCan(state: Int) {
@@ -267,11 +260,19 @@ object OchAutoPilotStatusListenerManager : CallerBase<IOchAutopilotStatusListene
override fun onFSM2024State(fsmState: Fsm2024.FSMStateMsg) {
fsmBackSessionId.set(fsmState.failToPilotSessionId)
_canStartAutopilotFromFSM = fsmState.pilotStandbyFlag
_orderIdFromFSM = fsmState.orderId
}
/**
* 消息发送 5s后超时回执
*
*/
override fun onReceiveReceivedAck(receivedAck: ReceivedAck) {
if (receivedAck.messageType == MessageType.TYPE_SEND_SET_AUTOPILOT_MODE_REQ) {
OchAutopilotAnalytics.triggerStartAutopilotParametersAck(receivedAck.toString(),receivedAck.status == Status.NORMAL)
OchAutopilotAnalytics.triggerStartAutopilotParametersAck(
receivedAck.toString(),
receivedAck.status == Status.NORMAL
)
if(receivedAck.status==Status.NORMAL){
// 底盘接受成功
LineManager.invokeStartAutopilotAckSuccess(receivedAck)

View File

@@ -1,7 +1,6 @@
package com.mogo.och.common.module.manager.autopilot.autopilot
package com.mogo.och.bridge.autopilot.autopilot
import android.text.TextUtils
import com.alibaba.android.arouter.exception.InitException
import com.mogo.commons.debug.DebugConfig
import com.mogo.commons.utils.MogoAnalyticUtils
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
@@ -10,11 +9,11 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
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.DateTimeUtils
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.bean.SessionWithTime
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.autopilot.bean.SessionWithTime
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.common.module.exception.InitException
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
@@ -273,7 +272,7 @@ object OchAutopilotAnalytics {
// taxi event_key_och_taxi_start_service *
// 无人化taxiPa event_key_unmanned_taxi_start_service
fun getEventKeyStartService(): String{
if(ochEventKey==null){
if(ochEventKey ==null){
throw InitException("请设置启动自驾埋点key")
}
return ochEventKey!!.getEventKeyStartService()
@@ -286,7 +285,7 @@ object OchAutopilotAnalytics {
// taxi event_key_och_taxi_restart_autopilot *
// 无人化taxiPa event_key_unmanned_taxi_restart_autopilot
fun getEventKeyRestartService(): String{
if(ochEventKey==null){
if(ochEventKey ==null){
throw InitException("请设置启动自驾埋点key")
}
return ochEventKey!!.getEventKeyRestartService()
@@ -299,7 +298,7 @@ object OchAutopilotAnalytics {
// taxi event_key_och_taxi_ap_unable_start_reason *
// 无人化taxiPa event_key_och_taxi_ap_unable_start_reason
fun getEventKeyApUnableStartReason(): String{
if(ochEventKey==null){
if(ochEventKey ==null){
throw InitException("请设置启动自驾埋点key")
}
return ochEventKey!!.getEventKeyApUnableStartReason()
@@ -312,7 +311,7 @@ object OchAutopilotAnalytics {
// taxi event_key_och_taxi_click_start_autopilot
// 无人化taxiPa event_key_och_taxi_passenger_click_start_autopilot
fun getEventKeyClickStartAutopilot(): String{
if(ochEventKey==null){
if(ochEventKey ==null){
throw InitException("请设置启动自驾埋点key")
}
return ochEventKey!!.getEventKeyClickStartAutopilot()

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.autopilot.bean;
package com.mogo.och.bridge.autopilot.autopilot.bean;
import com.mogo.eagle.core.data.map.MogoLocation;

View File

@@ -0,0 +1,3 @@
package com.mogo.och.bridge.autopilot.autopilot.bean
data class SessionWithTime(val sessionId:Long,val setTime:Long)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.callback
package com.mogo.och.bridge.autopilot.callback
/**
* @author: wangmingjun

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.line;
package com.mogo.och.bridge.autopilot.line;
public interface ILineCallback {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.line
package com.mogo.och.bridge.autopilot.line
import android.text.TextUtils
import com.elegant.network.utils.GsonUtil
@@ -23,12 +23,12 @@ import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.StringUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.OCHAdasAbilityManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotManager.startAutoPilot
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.bridge.autopilot.OCHAdasAbilityManager
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotManager.startAutoPilot
import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.utils.CallerBase
import com.mogo.och.common.module.voice.VoiceNotice
@@ -81,6 +81,7 @@ object LineManager : CallerBase<ILineCallback>() {
private var autopilotId: String by Delegates.observable("") { _, oldValue, newValue ->
if (oldValue != newValue) {
CallerEagleBaseFunctionCall4OchManager.setOchAutopilotOrderId(newValue)
isFirstStartAutopilot = true
M_LISTENERS.forEach {
it.value.onAutopilotIdChange(oldValue,newValue)
}
@@ -167,9 +168,9 @@ object LineManager : CallerBase<ILineCallback>() {
clearGlobalTrajectory(true)
CallerEagleBaseFunctionCall4OchManager.updateOrderLine("")
}
this._lineInfos = lineInfo
_lineInfos = lineInfo
setAutopilotControlParameters()
this._lineInfos?.let { line ->
_lineInfos?.let { line ->
if (ProjectUtils.isSaas()) {
val sb = StringBuilder()
sb.append(line.lineName)
@@ -179,7 +180,7 @@ object LineManager : CallerBase<ILineCallback>() {
CallerEagleBaseFunctionCall4OchManager.updateOrderLine(sb.toString())
}
}
OchChainLogManager.writeChainLogAutopilot("自驾参数", "线路信息:${contraiInfo}")
OchChainLogManager.writeChainLogAutopilot("自驾参数", "线路信息:$contraiInfo")
}
fun getStations(): Pair<BusStationBean?, BusStationBean?> {
@@ -193,7 +194,7 @@ object LineManager : CallerBase<ILineCallback>() {
return
}
}
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}")
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:$endStation")
}
fun getStationsWithLine(function: (start: BusStationBean, end: BusStationBean, lineInfo: LineInfo) -> Unit) {
@@ -207,7 +208,7 @@ object LineManager : CallerBase<ILineCallback>() {
}
OchChainLogManager.writeChainLog(
"异常情况",
"startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}"
"startStation:${startStation}__endStation:${endStation}__lineInfos:$_lineInfos"
)
}
@@ -224,7 +225,7 @@ object LineManager : CallerBase<ILineCallback>() {
}
OchChainLogManager.writeChainLog(
"异常情况",
"startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}__contraiInfo:${_contraiInfo}"
"startStation:${startStation}__endStation:${endStation}__lineInfos:${_lineInfos}__contraiInfo:$_contraiInfo"
)
}
@@ -233,7 +234,7 @@ object LineManager : CallerBase<ILineCallback>() {
function.invoke(start)
return
}
OchChainLogManager.writeChainLog("异常情况", "startStation:${startStation}")
OchChainLogManager.writeChainLog("异常情况", "startStation:$startStation")
}
fun getLineInfo(function: (lineInfo: LineInfo) -> Unit){
@@ -241,7 +242,7 @@ object LineManager : CallerBase<ILineCallback>() {
function.invoke(line)
return
}
OchChainLogManager.writeChainLog("异常情况", "lineInfos:${_lineInfos}")
OchChainLogManager.writeChainLog("异常情况", "lineInfos:$_lineInfos")
}
@@ -271,7 +272,7 @@ object LineManager : CallerBase<ILineCallback>() {
endStationLocation.latitude = end.gcjLat
endStationLocation.longitude = end.gcjLon
TrajectoryAndDistanceManager.setStationPoint(startStationLocation, endStationLocation, lineInfo.lineId)
OchLocationManager.addGCJ02Listener(TAG,1,mMapLocationListener)
OchLocationManager.addGCJ02Listener(TAG,1, mMapLocationListener)
// 恢复启动自驾信息
searchAutopilotState()
}
@@ -282,7 +283,7 @@ object LineManager : CallerBase<ILineCallback>() {
private fun clearAutopilotControlParameters(){
CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null)
TrajectoryAndDistanceManager.setStationPoint(null, null, null)
this.autopilotId = ""
autopilotId = ""
OchLocationManager.removeGCJ02Listener(TAG)
}
@@ -433,7 +434,7 @@ object LineManager : CallerBase<ILineCallback>() {
// 启动自动驾驶
fun startAutopilot() {
if(startStation==null|| endStation==null){
if(startStation ==null|| endStation ==null){
ToastUtils.showShort("未设置起始或终点站点")
return
}
@@ -455,7 +456,7 @@ object LineManager : CallerBase<ILineCallback>() {
OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis())
//1、判断轨迹url是否可用
if(_contraiInfo==null){
if(_contraiInfo ==null){
ToastUtils.showLong("无发布轨迹, 请发布后重试")
return
}else{
@@ -467,7 +468,7 @@ object LineManager : CallerBase<ILineCallback>() {
e(
TAG, "isPassStartAutopilotCommand = " +
FunctionBuildConfig.isPassStartAutopilotCommand
+ "busRoutesResult.csvFileUrl = " + LineManager._contraiInfo!!.csvFileUrl
+ "busRoutesResult.csvFileUrl = " + _contraiInfo!!.csvFileUrl
)
return
}
@@ -506,7 +507,7 @@ object LineManager : CallerBase<ILineCallback>() {
M_BUS + TAG,
"行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters)
+ " startLatLon=" + parameters.startName + "endLatLon=" + parameters.endName +
"isRestart = " + LineManager.isFirstStartAutopilot
"isRestart = " + isFirstStartAutopilot
)
M_LISTENERS.forEach {
@@ -570,4 +571,26 @@ object LineManager : CallerBase<ILineCallback>() {
}
}
fun compareFSMAndOchOrderId(autopilotIdFromFsm: String?) {
if(autopilotIdFromFsm == autopilotId){
// 地盘有和上层一样 不用操作
}else{
if(autopilotIdFromFsm.isNullOrEmpty()){
// 地盘没有 不做操作
}else{
// 地盘有但是和och出不一样
// todo 需要och 重新出发轨迹下载操作
ToastUtils.showShort("${autopilotIdFromFsm}_${autopilotId}_自动驾驶id不同请排查")
OchChainLogManager.writeChainLogAutopilot("自驾Id","${autopilotIdFromFsm}_${autopilotId}_自动驾驶id不同请排查")
// val initAutopilotControlParameters = initAutopilotControlParameters()
// if (initAutopilotControlParameters!==null&&initAutopilotControlParameters.autoPilotLine!=null
// && contraiInfo!=null
// ) {
// CallerAutoPilotControlManager.sendTrajectoryDownloadReq(initAutopilotControlParameters.autoPilotLine!!,
// contraiInfo!!.source, autopilotId)
// }
}
}
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.location
package com.mogo.och.bridge.autopilot.location
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener

View File

@@ -0,0 +1,32 @@
package com.mogo.och.bridge.autopilot.trajectory
import com.mogo.eagle.core.data.map.MogoLocation
interface ITrajectoryListListener{
/**
* @param trajectoryList gcj 坐标轨迹集合
*/
fun trajectoryCallback(trajectoryList: MutableList<MogoLocation>){}
/**
* @param maxDistanceAllPoint 轨迹全长
*/
fun trajectoryDistanceCallback(maxDistanceAllPoint: Double){}
// 开始下载轨迹
fun onDownLoadStart(lineId: Long){}
// 下载轨迹成功
fun onDownLoadSuccess(lineId: Long){}
// 下载轨迹是吧
fun onDownLoadFail(lineId: Long){}
// 下载轨迹超时
fun onDownLoadTimeout(lineId: Long){}
// 加载轨迹失败
fun onLoadFail(lineId: Long){}
// 轨迹不存在
fun onTrajectoryNotExist(lineId: Long){}
// 底盘已就行
fun onDownLoadReady(lineId: Long) {}
// 当前位置距离轨迹大于15m
fun onDistanceWithTrajectory(lineId: Long) {}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.trajectory
package com.mogo.och.bridge.autopilot.trajectory
import com.elegant.network.utils.GsonUtil
import com.mogo.commons.AbsMogoApplication

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.autopilot.trajectory
package com.mogo.och.bridge.autopilot.trajectory
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.map.MogoLocation
@@ -9,17 +9,14 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager.writeChainLog
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.CallerBase
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.zhjt.mogo.adas.data.bean.MogoReport
import mogo.telematics.pad.MessagePad
import java.util.concurrent.ConcurrentHashMap
object TrajectoryManager : IMoGoPlanningRottingListener {
object TrajectoryManager : CallerBase<ITrajectoryListListener>(),IMoGoPlanningRottingListener {
const val TAG = "TrajectoryManager"
private val distanceListeners: ConcurrentHashMap<String, ITrajectoryListListener> =
ConcurrentHashMap()
private val downLoadSuccessLineIds = mutableListOf<Long>()
/**
@@ -60,7 +57,7 @@ object TrajectoryManager : IMoGoPlanningRottingListener {
CallerLogger.d(SceneConstant.M_OCHCOMMON + TAG, "重复轨迹")
return
}
this.lineId = globalPathResp.lineId
lineId = globalPathResp.lineId
}
updateRoutePoints(it)
}
@@ -88,48 +85,88 @@ object TrajectoryManager : IMoGoPlanningRottingListener {
maxDistanceAllPoint += distanceItem
}
}
distanceListeners.forEach {
M_LISTENERS.forEach {
it.value.trajectoryCallback(mRoutePoints)
}
M_LISTENERS.forEach {
it.value.trajectoryDistanceCallback(maxDistanceAllPoint)
}
}
fun addTrajectoryListListenerr(tag: String, listener: ITrajectoryListListener?) {
if (distanceListeners.containsKey(tag)) {
return
}
if(listener==null){
distanceListeners.remove(tag)
return
}
distanceListeners[tag] = listener
}
fun addDownLoadSuccessLine(lineId:Long){
private fun addDownLoadSuccessLine(lineId:Long){
if(lineId>0){
OchChainLogManager.writeChainLog("轨迹监控", " 轨迹下载成功${lineId}", true, OchChainLogManager.EVENT_KEY_INFE_WITH_TRAJECTORY)
downLoadSuccessLineIds.add(lineId)
}
}
fun removeDownLoadSuccessLine(lineId:Long){
private fun removeDownLoadSuccessLine(lineId:Long){
if(lineId>0&& downLoadSuccessLineIds.contains(lineId)){
downLoadSuccessLineIds.remove(lineId)
}
}
fun carDownLoadTrajectoryLog(code:String?){
fun carDownLoadTrajectoryLog(code: String?, lineId: Long){
when (code) {
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START -> writeTrajectoryLog("轨迹开始下载")
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS -> writeTrajectoryLog("轨迹下载成功")
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE -> writeTrajectoryLog("轨迹下载失败,本地无对应轨迹")
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_WARNING -> writeTrajectoryLog("轨迹下载失败,本地有对应轨迹,认为成功")
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_TIMEOUT -> writeTrajectoryLog("轨迹下载超时")
MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY -> writeTrajectoryLog("再次发起下载、 ssm ready再次发起下载")
MogoReport.Code.Error.EMAP.TRA_LOAD_FAILED -> writeTrajectoryLog("onAutopilotGuardian() 加载轨迹文件失败")
MogoReport.Code.Error.EMAP.TRA_NOT_EXIST -> writeTrajectoryLog("onAutopilotGuardian() 无法找到轨迹文件")
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_START -> {
writeTrajectoryLog("轨迹开始下载")
M_LISTENERS.forEach {
it.value.onDownLoadStart(lineId)
}
}
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_SUCCESS -> {
writeTrajectoryLog("轨迹下载成功")
addDownLoadSuccessLine(lineId)
M_LISTENERS.forEach {
it.value.onDownLoadSuccess(lineId)
}
}
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_FAILURE -> {
writeTrajectoryLog("轨迹下载失败,本地无对应轨迹")
// 更新轨迹没有更新lineId 第二次下载失败 删除App成功缓存(概率很低)
removeDownLoadSuccessLine(lineId)
M_LISTENERS.forEach {
it.value.onDownLoadFail(lineId)
}
}
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_WARNING -> {
writeTrajectoryLog("轨迹下载失败,本地有对应轨迹,认为成功")
M_LISTENERS.forEach {
it.value.onDownLoadSuccess(lineId)
}
}
MogoReport.Code.Info.ISYS.INIT_TRAJECTORY_TIMEOUT -> {
writeTrajectoryLog("轨迹下载超时")
M_LISTENERS.forEach {
it.value.onDownLoadTimeout(lineId)
}
}
MogoReport.Code.Info.ISSM.FUNC_AUTO_PILOT_READY -> {
writeTrajectoryLog("再次发起下载、 ssm ready再次发起下载")
M_LISTENERS.forEach {
it.value.onDownLoadReady(lineId)
}
}
MogoReport.Code.Error.EMAP.TRA_LOAD_FAILED -> {
writeTrajectoryLog("onAutopilotGuardian() 加载轨迹文件失败")
M_LISTENERS.forEach {
it.value.onLoadFail(lineId)
}
}
MogoReport.Code.Error.EMAP.TRA_NOT_EXIST -> {
writeTrajectoryLog("onAutopilotGuardian() 无法找到轨迹文件")
M_LISTENERS.forEach {
it.value.onTrajectoryNotExist(lineId)
}
}
MogoReport.Code.Error.EMAP.ATTITUDE_INIT_FAILED->{
writeTrajectoryLog("onAutopilotGuardian() 当前位置距离轨迹距离大于15m")
M_LISTENERS.forEach {
it.value.onDistanceWithTrajectory(lineId)
}
}
else -> {}
}
}
private fun writeTrajectoryLog(message:String){

View File

@@ -1,7 +1,7 @@
package com.mogo.och.common.module.manager.device
package com.mogo.och.bridge.device
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.wigets.toast.ToastCharterUtils
import io.reactivex.disposables.Disposable

View File

@@ -1,13 +1,13 @@
package com.mogo.och.common.module.manager.device
package com.mogo.och.bridge.device
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener
import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager
import com.mogo.och.common.module.manager.device.callback.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.device.data.AirconditionStatus
import com.mogo.och.common.module.manager.device.data.DoorStatus
import com.mogo.och.common.module.manager.device.data.HeaterStatue
import com.mogo.och.common.module.manager.device.data.LightStatus
import com.mogo.och.bridge.device.callback.LightAirconditionDoorCallback
import com.mogo.och.bridge.device.data.AirconditionStatus
import com.mogo.och.bridge.device.data.DoorStatus
import com.mogo.och.bridge.device.data.HeaterStatue
import com.mogo.och.bridge.device.data.LightStatus
import java.util.concurrent.ConcurrentHashMap
object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
@@ -37,8 +37,8 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
listener.onLightTop1Callback(lightStatus,true)
listener.onLightTop2Callback(lightStatus,true)
listener.onLightAtmosphereCallback(lightStatus,true)
listener.onAirconditionStatusCallback(heaterStatue.isOpen,airconditionStatus,true)
listener.onHeaterStatusCallback(airconditionStatus.isOpen,heaterStatue,true)
listener.onAirconditionStatusCallback(heaterStatue.isOpen, airconditionStatus,true)
listener.onHeaterStatusCallback(airconditionStatus.isOpen, heaterStatue,true)
}
fun removeListener(tag: String) {
@@ -78,7 +78,7 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onAirconditionStatusCallback(heaterState.isOn,airconditionStatus,false)
listener.onAirconditionStatusCallback(heaterState.isOn, airconditionStatus,false)
}
}
if (heaterState.isOn != heaterStatue.isOpen ||
@@ -89,7 +89,7 @@ object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
M_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onHeaterStatusCallback(airConditionerState.isOn,heaterStatue,false)
listener.onHeaterStatusCallback(airConditionerState.isOn, heaterStatue,false)
}
}
if (states.frontDoorState.isOn != doorStatus.isOpen) {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.device
package com.mogo.och.bridge.device
import chassis.Chassis
import chassis.VehicleStateOuterClass
@@ -7,9 +7,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisDoorStateListene
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.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.bridge.device.callback.DoorStateCallback
import com.mogo.och.bridge.device.data.DoorPosition
import com.mogo.och.bridge.device.data.DoorState
object TaxiDoorStateManager : IMoGoChassisDoorStateListener,
CallerBase<DoorStateCallback>() {
@@ -67,9 +67,14 @@ object TaxiDoorStateManager : IMoGoChassisDoorStateListener,
override fun onAutopilotSingleDoorState(num: Chassis.DoorNumber, status: Int) {
CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "门太变化:${num}--${status}")
when (status) {
0 -> { exchangeEnum(num, DoorState.CLOSE)}
1 -> {exchangeEnum(num, DoorState.OPEN)}
2 -> {exchangeEnum(num, DoorState.UNKNOWN)}
0 -> { exchangeEnum(num, DoorState.CLOSE)
}
1 -> {
exchangeEnum(num, DoorState.OPEN)
}
2 -> {
exchangeEnum(num, DoorState.UNKNOWN)
}
else -> {}
}
@@ -118,7 +123,7 @@ object TaxiDoorStateManager : IMoGoChassisDoorStateListener,
* @param doorState 车门状态
*/
@Synchronized
private fun invokeSingleDoorOpenState(doorPosition: DoorPosition,doorState: DoorState) {
private fun invokeSingleDoorOpenState(doorPosition: DoorPosition, doorState: DoorState) {
M_LISTENERS.forEach {
val listener = it.value
listener.doorStateChangeCallback(doorPosition,doorState)

View File

@@ -1,7 +1,7 @@
package com.mogo.och.common.module.manager.device.callback
package com.mogo.och.bridge.device.callback
import com.mogo.och.common.module.manager.device.data.DoorPosition
import com.mogo.och.common.module.manager.device.data.DoorState
import com.mogo.och.bridge.device.data.DoorPosition
import com.mogo.och.bridge.device.data.DoorState
interface DoorStateCallback {
@@ -15,5 +15,5 @@ interface DoorStateCallback {
* @param position 车门位置
* @param state 当前车门状态
*/
fun doorStateChangeCallback(position: DoorPosition,state: DoorState){}
fun doorStateChangeCallback(position: DoorPosition, state: DoorState){}
}

View File

@@ -1,17 +1,17 @@
package com.mogo.och.common.module.manager.device.callback
package com.mogo.och.bridge.device.callback
import com.mogo.och.common.module.manager.device.data.AirconditionStatus
import com.mogo.och.common.module.manager.device.data.HeaterStatue
import com.mogo.och.common.module.manager.device.data.LightStatus
import com.mogo.och.bridge.device.data.AirconditionStatus
import com.mogo.och.bridge.device.data.HeaterStatue
import com.mogo.och.bridge.device.data.LightStatus
interface LightAirconditionDoorCallback {
fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus,
isFirst: Boolean) {
isFirst: Boolean) {
}
fun onHeaterStatusCallback(airconditionIsOpen: Boolean, heaterStatue: HeaterStatue,
isFirst: Boolean) {
isFirst: Boolean) {
}
fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {}

View File

@@ -1,10 +1,10 @@
package com.mogo.och.common.module.manager.device.checkvin
package com.mogo.och.bridge.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.bridge.R
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
import kotlinx.android.synthetic.main.common_checkvin_view.actv_see
@@ -19,7 +19,9 @@ class CheckVinErrorDialog(context: Context) : BaseFloatDialog(context), Lifecycl
setCanceledOnTouchOutside(true)
actv_see.onClick {
OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true,EVENT_KEY_INFO_CHECK_VIN)
OchChainLogManager.writeChainLog("vinCheck","用户点击了 ”我知道了“",true,
EVENT_KEY_INFO_CHECK_VIN
)
dismiss()
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.device.checkvin
package com.mogo.och.bridge.device.checkvin
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
@@ -16,11 +16,11 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener {
private val TAG = CheckVinManager::class.java.simpleName
init {
BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5,::checkVin,scheduler = Schedulers.io()))
BizLoopManager.setLoopFunction(TAG, LoopInfo(60*5, CheckVinManager::checkVin,scheduler = Schedulers.io()))
CallerAutopilotCarConfigListenerManager.addListener(TAG,this)
}
private var checkVinErrorDialog:CheckVinErrorDialog?=null
private var checkVinErrorDialog: CheckVinErrorDialog?=null
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
checkVin()
@@ -55,7 +55,7 @@ object CheckVinManager : IMoGoAutopilotCarConfigListener {
val topActivity = ActivityUtils.getTopActivity()
topActivity?.let {
UiThreadHandler.post({
if(checkVinErrorDialog!=null&&checkVinErrorDialog!!.isShowing){
if(checkVinErrorDialog !=null&& checkVinErrorDialog!!.isShowing){
return@post
}
checkVinErrorDialog = CheckVinErrorDialog(it)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.device.data
package com.mogo.och.bridge.device.data
data class AirconditionStatus(
var isOpen: Boolean,

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.device.data
package com.mogo.och.bridge.device.data
data class DoorStatus(var isOpen: Boolean)

View File

@@ -1,3 +1,3 @@
package com.mogo.och.common.module.manager.device.data
package com.mogo.och.bridge.device.data
data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.device.data
package com.mogo.och.bridge.device.data
data class LightStatus(
var isOpenLight1: Boolean,

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.distance
package com.mogo.och.bridge.distance
data class DistanceDegree(var distance: Float, var degree: Double?, var isNext: Boolean?) :
Comparable<DistanceDegree> {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.distance
package com.mogo.och.bridge.distance
import com.mogo.eagle.core.data.map.MogoLocation

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.distance
package com.mogo.och.bridge.distance
import com.mogo.eagle.core.data.map.MogoLocation

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.manager.distance
package com.mogo.och.bridge.distance
import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.data.map.MogoLocation
@@ -11,12 +11,12 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.LocationUtils
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.common.module.manager.autopilot.trajectory.TrajectoryCache
import com.mogo.och.bridge.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.trajectory.TrajectoryCache
import com.mogo.och.common.module.manager.loop.BizLoopManager
import com.mogo.och.common.module.manager.loop.LoopInfo
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import io.reactivex.schedulers.Schedulers
import mogo.telematics.pad.MessagePad
import java.util.concurrent.ConcurrentHashMap

View File

@@ -1,25 +1,20 @@
package com.mogo.och.common.module.wigets.autopilot
package com.mogo.och.bridge.ui.autopilot
import android.animation.Animator
import android.animation.Animator.AnimatorListener
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.animation.ValueAnimator
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.view.animation.LinearInterpolator
import androidx.annotation.DrawableRes
import androidx.annotation.IntegerRes
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.R
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.utils.BigFrameAnimatorContainer
import com.mogo.och.common.module.utils.ResourcesUtils
import kotlinx.android.synthetic.main.common_autopilot_view.view.aciv_autopilot_running_ani
@@ -47,12 +42,12 @@ class AutopilotState @JvmOverloads constructor(
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.common_autopilot_view, this, true)
autopilotStateAnimator = BigFrameAnimatorContainer(R.array.in_auto, 31, aciv_autopilot_running_ani)
autopilotLoadingAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "rotation", 0f, 360f);
autopilotLoadingAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "rotation", 0f, 360f)
autopilotLoadingAnimator.interpolator = LinearInterpolator()
autopilotLoadingAnimator.repeatCount = -1 //无限循环
autopilotLoadingAnimator.duration = 2000 //无限循环
autopilotChangeStateAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "alpha", 1f, 0f,1f);
autopilotChangeStateAnimator = ObjectAnimator.ofFloat(aciv_autopilot_state, "alpha", 1f, 0f,1f)
autopilotChangeStateAnimator.interpolator = LinearInterpolator()
autopilotChangeStateAnimator.duration = 300
onClick {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.wigets.autopilot
package com.mogo.och.bridge.ui.autopilot
import androidx.lifecycle.ViewModel
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -7,10 +7,10 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.debug.autopilot.AutopilotStateDebug
import com.mogo.och.common.module.debug.autopilot.IOchDebugAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.common.module.manager.autopilot.line.ILineCallback
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.bridge.autopilot.autopilot.IOchAutopilotStatusListener
import com.mogo.och.bridge.autopilot.autopilot.OchAutoPilotStatusListenerManager
import com.mogo.och.bridge.autopilot.line.ILineCallback
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.common.module.manager.beautifymode.BeautifyManager
import com.mogo.och.common.module.manager.beautifymode.IBeautifyModeCallback
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
@@ -23,12 +23,12 @@ import java.util.concurrent.atomic.AtomicBoolean
* @description BadCase录包管理页面
* @since: 2022/12/15
*/
class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCallback,
class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCallback,
IOchDebugAutopilotStatusListener, IBeautifyModeCallback {
private val TAG = AutopilotStateModel::class.java.simpleName
private var viewCallback:AutopilotStateCallback?=null
private var viewCallback: AutopilotStateCallback? = null
private val isPalyStartAni = AtomicBoolean(false)
@@ -44,39 +44,42 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall
BeautifyManager.setStatusChangeListener(TAG,null)
}
fun setViewCallback(viewCallback:AutopilotStateCallback){
fun setViewCallback(viewCallback: AutopilotStateCallback) {
this.viewCallback = viewCallback
AutopilotStateDebug.addListener(TAG,this)
OchAutoPilotStatusListenerManager.addListener(TAG,this)
LineManager.addListener(TAG,this)
AutopilotStateDebug.addListener(TAG, this)
OchAutoPilotStatusListenerManager.addListener(TAG, this)
LineManager.addListener(TAG, this)
BeautifyManager.setStatusChangeListener(TAG,this)
}
override fun debugStatusChange(debugStatus: Boolean) {
super.debugStatusChange(debugStatus)
if(debugStatus){
if (debugStatus) {
OchAutoPilotStatusListenerManager.removeListener(TAG)
LineManager.removeListener(TAG)
}else{
OchAutoPilotStatusListenerManager.addListener(TAG,this)
LineManager.addListener(TAG,this)
} else {
OchAutoPilotStatusListenerManager.addListener(TAG, this)
LineManager.addListener(TAG, this)
}
}
override fun debugDispatchState(state: Int?) {
super.debugDispatchState(state)
when (state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE-> {// 不可用 不可启动自驾
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可用 不可启动自驾
this.viewCallback?.autopilotDisable()
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE-> {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
this.viewCallback?.canStartAutopilot()
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING-> {// 自驾中
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {// 自驾中
this.viewCallback?.stopAutopilotAnimation()
this.viewCallback?.inAutopilot()
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING-> {// 平行驾驶中
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {// 平行驾驶中
this.viewCallback?.stopAutopilotAnimation()
this.viewCallback?.inRemoteDriver()
}
@@ -84,17 +87,17 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall
}
override fun onAutopilotStatusResponse(state: Int) {
OchChainLogManager.writeChainLog("自驾信息","自驾状态变化:${state}")
OchChainLogManager.writeChainLog("自驾信息", "自驾状态变化:${state}")
autopilotStateChange()
}
override fun canStartAutopilot(canStart: Boolean) {
OchChainLogManager.writeChainLog("自驾信息","能否启动自驾:${canStart}")
OchChainLogManager.writeChainLog("自驾信息", "能否启动自驾:${canStart}")
autopilotStateChange()
}
override fun onFsmCanStartAutopilot(can: Boolean) {
OchChainLogManager.writeChainLog("自驾信息","FSM能否启动自驾:${can}")
OchChainLogManager.writeChainLog("自驾信息", "FSM能否启动自驾:${can}")
autopilotStateChange()
}
@@ -224,13 +227,13 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall
}
fun startAutopilot() {
OchChainLogManager.writeChainLog("自驾信息","启动自驾")
if(AutopilotStateDebug.debugStatus){
OchChainLogManager.writeChainLog("自驾信息", "启动自驾")
if (AutopilotStateDebug.debugStatus) {
sendStartAutopilotSuccess()
RxUtils.createSubscribe(5_000) {
startAutopilotFail()
}
}else {
} else {
LineManager.startAutopilot()
}
}
@@ -247,19 +250,22 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall
}
override fun startAutopilotTimeOut() {
OchChainLogManager.writeChainLog("自驾信息","启动自驾超时失败")
if(OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
OchChainLogManager.writeChainLog("自驾信息", "启动自驾超时失败")
if (OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
autopilotStateChange()
}else {
} else {
startAutopilotFail()
}
}
override fun startAutopilotFailure(startFailedCode: String?, startFailedMessage: String?) {
OchChainLogManager.writeChainLog("自驾信息","底盘强制失败原因:${startFailedCode}_${startFailedMessage}")
if(OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
OchChainLogManager.writeChainLog(
"自驾信息",
"底盘强制失败原因:${startFailedCode}_${startFailedMessage}"
)
if (OchAutoPilotStatusListenerManager.autopilotState == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) {
autopilotStateChange()
}else {
} else {
startAutopilotFail()
}
}
@@ -277,27 +283,32 @@ class AutopilotStateModel : ViewModel(), IOchAutopilotStatusListener, ILineCall
this.isPalyStartAni.set(false)
UiThreadHandler.postDelayed({
autopilotStateChange()
},3000,UiThreadHandler.MODE.QUEUE)
}, 3000, UiThreadHandler.MODE.QUEUE)
}
}
interface AutopilotStateCallback{
interface AutopilotStateCallback {
//开始动画
fun startAutopilotAnimation()
//结束动画
fun stopAutopilotAnimation()
// 进入自动驾驶
fun inAutopilot()
// 自动驾驶不可用
fun autopilotDisable()
// 可用启动自驾
fun canStartAutopilot()
// 进入平行驾驶
fun inRemoteDriver()
// 启动自驾成功
fun startAutopilotSuccess()
// 启动自驾失败
fun startAutopilotFail()
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.wigets.map.drawline
package com.mogo.och.bridge.ui.drawline
import android.content.Context
import android.util.AttributeSet
@@ -8,8 +8,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.bridge.R
import com.mogo.och.bridge.autopilot.line.LineManager
import com.mogo.och.common.module.utils.ResourcesUtils
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title

View File

@@ -1,10 +1,10 @@
package com.mogo.och.common.module.wigets.map.drawline
package com.mogo.och.bridge.ui.drawline
import androidx.annotation.DrawableRes
import androidx.lifecycle.ViewModel
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.line.ILineCallback
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.bridge.autopilot.line.ILineCallback
import com.mogo.och.bridge.autopilot.line.LineManager
class LineViewModel : ViewModel(), ILineCallback {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.wigets.mapdirectionview;
package com.mogo.och.bridge.ui.mapdirectionview;
/**
* @author xiaoyuzhou

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.wigets.mapdirectionview
package com.mogo.och.bridge.ui.mapdirectionview
import android.content.Context
import android.os.Bundle
@@ -28,7 +28,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.location.OchLocationManager
import com.mogo.och.bridge.autopilot.location.OchLocationManager
import com.mogo.och.shuttle.passenger.ui.mapdirectionview.MapDirectionViewModel
import me.jessyan.autosize.utils.AutoSizeUtils

View File

@@ -4,8 +4,8 @@ import androidx.lifecycle.ViewModel
import com.amap.api.maps.model.LatLng
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.manager.distance.ITrajectoryListener
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.bridge.distance.ITrajectoryListener
import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
class MapDirectionViewModel: ViewModel(), ITrajectoryListener {

View File

@@ -1,4 +1,4 @@
package com.mogo.och.common.module.utils
package com.mogo.och.bridge.utils
import android.content.Context
import android.location.Location
@@ -9,7 +9,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.CoordinateUtils
import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils
import com.mogo.och.common.module.manager.distance.DistanceDegree
import com.mogo.och.bridge.distance.DistanceDegree
import mogo.telematics.pad.MessagePad
import java.util.TreeMap
import kotlin.math.acos
@@ -752,8 +752,8 @@ object CoordinateCalculateRouteUtil {
// 最近点中包含上次计算的点和上次计算的最近的一个点
if(distanceMap.containsValue(preIndex)&&distanceMap.containsValue(preIndex+1)&&type==1){
var preIndexDistance:DistanceDegree?=null
var preIndexNextDistance:DistanceDegree?=null
var preIndexDistance: com.mogo.och.bridge.distance.DistanceDegree?=null
var preIndexNextDistance: com.mogo.och.bridge.distance.DistanceDegree?=null
distanceMap.iterator().forEach { en ->
val key = en.key
val value = en.value

File diff suppressed because one or more lines are too long

View File

@@ -73,7 +73,6 @@ dependencies {
implementation rootProject.ext.dependencies.litezxing
api rootProject.ext.dependencies.flexbox
api project(":OCH:common:data")
api rootProject.ext.dependencies.lottie
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {

View File

@@ -33,8 +33,9 @@ import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.debug.location.MogoLocationExit
import com.mogo.och.common.module.manager.distance.TrajectoryAndDistanceManager
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
//import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager
//import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
//import com.mogo.och.bridge.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.view.DebugFloatWindow
import com.zhjt.mogo.adas.data.bean.AutopilotStatistics
import mogo.telematics.pad.MessagePad
@@ -214,16 +215,16 @@ object DebugDataDispatch {
}
fun setStation(startLon:Double,startLat:Double,endLon:Double,endLat:Double,lineID:Long){
if(startLon<0||startLat<0||endLon<0||endLat<0||lineID<0){
TrajectoryAndDistanceManager.setStationPoint(null,null,-1)
}
val startLocation = MogoLocation()
startLocation.longitude = startLon
startLocation.latitude = startLat
val endLocation = MogoLocation()
endLocation.longitude = endLon
endLocation.latitude = endLat
TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineID)
// if(startLon<0||startLat<0||endLon<0||endLat<0||lineID<0){
// TrajectoryAndDistanceManager.setStationPoint(null,null,-1)
// }
// val startLocation = MogoLocation()
// startLocation.longitude = startLon
// startLocation.latitude = startLat
// val endLocation = MogoLocation()
// endLocation.longitude = endLon
// endLocation.latitude = endLat
// TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineID)
}
fun getLocaitonByLog(path:String) {
@@ -290,11 +291,11 @@ object DebugDataDispatch {
val mogoSecondLocation = MogoLocation()
mogoSecondLocation.latitude = list[1].latitude
mogoSecondLocation.longitude = list[1].longitude
val angle = CoordinateCalculateRouteUtil.getHeadingAngle(
mogoLocation,
mogoSecondLocation
)
mogoLocation.heading = angle
// val angle = CoordinateCalculateRouteUtil.getHeadingAngle(
// mogoLocation,
// mogoSecondLocation
// )
// mogoLocation.heading = angle
CallerChassisLocationGCJ02ListenerManager.invokeChassisLocationGCJ02(
mogoLocation,

View File

@@ -3,10 +3,10 @@ package com.mogo.och.common.module.biz.lansocket
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.biz.login.BusinessEnum
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
@@ -126,15 +126,16 @@ object LoginLanPassengerSocket : IReceivedMsgListener, CallerBase<IOchLanPasseng
status.append("切换业务模式<当前:${LoginStatusManager.getBusInessType().name}")
when (first.businessType) {
BusinessType.none -> {
LoginStatusManager.setBusinessType(BusinessEnum.None.code)
LoginStatusManager.setBusinessType(Product.NONE.code)
CallerLogger.d(TAG, "乘客屏 收到消息 司机屏没有登录:${LoginStatusEnum.Logout}")
return LoginStatusManager.setLoginStatus(LoginStatusEnum.Logout)
}
BusinessType.bus -> LoginStatusManager.setBusinessType(BusinessEnum.Bus.code)
BusinessType.shuttle -> LoginStatusManager.setBusinessType(BusinessEnum.Shuttle.code)
BusinessType.charter -> LoginStatusManager.setBusinessType(BusinessEnum.Charter.code)
BusinessType.taxi -> LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code)
BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(BusinessEnum.Taxi.code)
BusinessType.bus -> LoginStatusManager.setBusinessType(Product.BUS.code)
BusinessType.shuttle -> LoginStatusManager.setBusinessType(Product.SHUTTLE.code)
BusinessType.charter -> LoginStatusManager.setBusinessType(Product.CHARTER.code)
BusinessType.taxi -> LoginStatusManager.setBusinessType(Product.TAXI.code)
BusinessType.taxiunmanned ->LoginStatusManager.setBusinessType(Product.TAXI.code)
BusinessType.scheduled ->LoginStatusManager.setBusinessType(Product.SCHEDULED.code)
}
status.append(", 切换后:${LoginStatusManager.getBusInessType().name}>")
LoginStatusManager.changeStatus(status.toString())

View File

@@ -1,29 +0,0 @@
package com.mogo.och.common.module.biz.login
/**
* Created on 2022/08/19
*
*
* 0 初始状态,
* 10 已登录,
* 20 已登出,
*/
enum class BusinessEnum(val code: Int) {
None( 0 ),
Taxi( 9),
Bus( 10),
Shuttle( 11),
Charter( 13),;
companion object {
@JvmStatic
fun valueOf(code: Int): BusinessEnum {
for (value in values()) {
if (value.code == code) {
return value
}
}
return None
}
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.common.module.biz.login;
import com.mogo.eagle.core.data.enums.Carmodel;
import com.mogo.eagle.core.utilcode.mogo.Product;
public interface ILoginCallback {
@@ -8,11 +9,11 @@ public interface ILoginCallback {
default void onCarModelChange(Carmodel currentStatus){}
default void onBusinessChange(BusinessEnum businessEnum){}
default void onBusinessChange(Product businessEnum){}
default void onOpenOrderStatusEnumChange(OpenOrderStatusEnum businessEnum){}
default void onBusinessChangeDebug(BusinessEnum businessEnum){}
default void onBusinessChangeDebug(Product businessEnum){}
default void onLoginErrorInfo(int code,String msg){}

View File

@@ -11,8 +11,13 @@ public class LoginInfo {
private String sn;
private String plateNumber;//车牌号
private String phone;//手机号
private Integer lineId;//线路id
private Integer taskId;//任务id
private Long lineId;//线路id
private Long taskId;//任务id
private Long siteId;//站点id 包车使用
private Long currentSite;//当前站点 接驳、公交、班车使用
private Boolean leaving;// 当前站点是否出发
private Long shiftsId;//模板id
private Long taskDate;// 任务或模板的日期
private String vin;//车辆唯一识别码
private String cityCode;//城市编码
private String brand;//东风
@@ -24,6 +29,8 @@ public class LoginInfo {
private long tenantId;//租户id:
private long driverId;
private long businessStatus;//?????
public int getDriverStatus() {
return driverStatus;
}
@@ -72,22 +79,6 @@ public class LoginInfo {
this.phone = phone;
}
public Integer getLineId() {
return lineId;
}
public void setLineId(Integer lineId) {
this.lineId = lineId;
}
public Integer getTaskId() {
return taskId;
}
public void setTaskId(Integer taskId) {
this.taskId = taskId;
}
public int getServingStatus() {
return servingStatus;
}
@@ -160,6 +151,73 @@ public class LoginInfo {
this.driverId = driverId;
}
public long getBusinessStatus() {
return businessStatus;
}
public void setBusinessStatus(long businessStatus) {
this.businessStatus = businessStatus;
}
public Long getCurrentSite() {
return currentSite;
}
public void setCurrentSite(Long currentSite) {
this.currentSite = currentSite;
}
public Boolean getLeaving() {
return leaving;
}
public void setLeaving(Boolean leaving) {
this.leaving = leaving;
}
public Long getTaskDate() {
return taskDate;
}
public void setTaskDate(Long taskDate) {
this.taskDate = taskDate;
}
public Long getLineId() {
return lineId;
}
public void setLineId(Long lineId) {
this.lineId = lineId;
}
public Long getTaskId() {
return taskId;
}
public void setTaskId(Long taskId) {
this.taskId = taskId;
}
public Long getSiteId() {
return siteId;
}
public void setSiteId(Long siteId) {
this.siteId = siteId;
}
public Long getShiftsId() {
return shiftsId;
}
public void setShiftsId(Long shiftsId) {
this.shiftsId = shiftsId;
}
@Override
public String toString() {
return "LoginInfo{" +
@@ -173,6 +231,7 @@ public class LoginInfo {
", phone='" + phone + '\'' +
", lineId=" + lineId +
", taskId=" + taskId +
", siteId=" + siteId +
", vin='" + vin + '\'' +
", cityCode='" + cityCode + '\'' +
", brand='" + brand + '\'' +
@@ -180,6 +239,7 @@ public class LoginInfo {
", photos='" + photos + '\'' +
", tenantId=" + tenantId +
", driverId=" + driverId +
", businessStatus=" + businessStatus +
'}';
}
@@ -189,30 +249,7 @@ public class LoginInfo {
if (o == null || getClass() != o.getClass()) return false;
LoginInfo loginInfo = (LoginInfo) o;
if (driverStatus != loginInfo.driverStatus) return false;
if (servingStatus != loginInfo.servingStatus) return false;
if (businessType != loginInfo.businessType) return false;
if (purpose != loginInfo.purpose) return false;
if (tenantId != loginInfo.tenantId) return false;
if (driverId != loginInfo.driverId) return false;
if (!Objects.equals(orderNo, loginInfo.orderNo))
return false;
if (!Objects.equals(sn, loginInfo.sn)) return false;
if (!Objects.equals(plateNumber, loginInfo.plateNumber))
return false;
if (!Objects.equals(phone, loginInfo.phone)) return false;
if (!Objects.equals(lineId, loginInfo.lineId))
return false;
if (!Objects.equals(taskId, loginInfo.taskId))
return false;
if (!Objects.equals(vin, loginInfo.vin)) return false;
if (!Objects.equals(cityCode, loginInfo.cityCode))
return false;
if (!Objects.equals(brand, loginInfo.brand)) return false;
if (!Objects.equals(carModel, loginInfo.carModel))
return false;
return Objects.equals(photos, loginInfo.photos);
return driverStatus == loginInfo.driverStatus && servingStatus == loginInfo.servingStatus && businessType == loginInfo.businessType && purpose == loginInfo.purpose && tenantId == loginInfo.tenantId && driverId == loginInfo.driverId && businessStatus == loginInfo.businessStatus && Objects.equals(orderNo, loginInfo.orderNo) && Objects.equals(sn, loginInfo.sn) && Objects.equals(plateNumber, loginInfo.plateNumber) && Objects.equals(phone, loginInfo.phone) && Objects.equals(lineId, loginInfo.lineId) && Objects.equals(taskId, loginInfo.taskId) && Objects.equals(siteId, loginInfo.siteId) && Objects.equals(vin, loginInfo.vin) && Objects.equals(cityCode, loginInfo.cityCode) && Objects.equals(brand, loginInfo.brand) && Objects.equals(carModel, loginInfo.carModel) && Objects.equals(photos, loginInfo.photos);
}
@Override
@@ -220,20 +257,22 @@ public class LoginInfo {
int result = driverStatus;
result = 31 * result + servingStatus;
result = 31 * result + businessType;
result = 31 * result + (int)tenantId;
result = 31 * result + (int)driverId;
result = 31 * result + (orderNo != null ? orderNo.hashCode() : 0);
result = 31 * result + Objects.hashCode(orderNo);
result = 31 * result + purpose;
result = 31 * result + (sn != null ? sn.hashCode() : 0);
result = 31 * result + (plateNumber != null ? plateNumber.hashCode() : 0);
result = 31 * result + (phone != null ? phone.hashCode() : 0);
result = 31 * result + (lineId != null ? lineId.hashCode() : 0);
result = 31 * result + (taskId != null ? taskId.hashCode() : 0);
result = 31 * result + (vin != null ? vin.hashCode() : 0);
result = 31 * result + (cityCode != null ? cityCode.hashCode() : 0);
result = 31 * result + (brand != null ? brand.hashCode() : 0);
result = 31 * result + (carModel != null ? carModel.hashCode() : 0);
result = 31 * result + (photos != null ? photos.hashCode() : 0);
result = 31 * result + Objects.hashCode(sn);
result = 31 * result + Objects.hashCode(plateNumber);
result = 31 * result + Objects.hashCode(phone);
result = 31 * result + Objects.hashCode(lineId);
result = 31 * result + Objects.hashCode(taskId);
result = 31 * result + Objects.hashCode(siteId);
result = 31 * result + Objects.hashCode(vin);
result = 31 * result + Objects.hashCode(cityCode);
result = 31 * result + Objects.hashCode(brand);
result = 31 * result + Objects.hashCode(carModel);
result = 31 * result + Objects.hashCode(photos);
result = 31 * result + Long.hashCode(tenantId);
result = 31 * result + Long.hashCode(driverId);
result = 31 * result + Long.hashCode(businessStatus);
return result;
}
}

View File

@@ -1,6 +1,7 @@
package com.mogo.och.common.module.biz.login
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.och.common.module.biz.provider.CommonService
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
@@ -20,7 +21,7 @@ interface LoginService :CommonService {
fun setLoginStatus(status: Int)
fun setBusinessType(type: Int)
fun getBusinessType():BusinessEnum
fun getBusinessType(): Product
fun queryLoginStatusByNet(readCatche:Boolean=false)

View File

@@ -6,6 +6,7 @@ import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.enums.Carmodel
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.manager.loop.BizLoopManager
@@ -74,11 +75,11 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
loginService?.setBusinessType(type)
}
fun getBusInessType():BusinessEnum{
fun getBusInessType():Product{
loginService?.let {
return it.getBusinessType()
}
return BusinessEnum.None
return Product.NONE
}
@JvmStatic
@@ -153,13 +154,13 @@ object LoginStatusManager : CallerBase<ILoginCallback>() {
}
}
fun invokeLBusinessTypeChange(currentStatus: BusinessEnum) {
fun invokeLBusinessTypeChange(currentStatus: Product) {
M_LISTENERS.forEach {
val listener = it.value
listener.onBusinessChange(currentStatus)
}
}
fun invokeLBusinessTypeChangeDebug(currentStatus: BusinessEnum) {
fun invokeLBusinessTypeChangeDebug(currentStatus: Product) {
M_LISTENERS.forEach {
val listener = it.value
listener.onBusinessChangeDebug(currentStatus)

View File

@@ -4,7 +4,6 @@ import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.template.IProvider
import com.mogo.och.common.module.wigets.autopilot.AutopilotState
interface CommonService : IProvider {
@@ -20,10 +19,6 @@ interface CommonService : IProvider {
fun createOchBindQRCodeView(context: Context?):View?{return null}
fun createStartAutopilotView(context: Context?):View?{
return context?.let {
AutopilotState(it)
}
}
fun createStartAutopilotView(context: Context?):View?{return null}
}

View File

@@ -0,0 +1,7 @@
package com.mogo.och.common.module.exception;
public class InitException extends RuntimeException {
public InitException(String detailMessage) {
super(detailMessage);
}
}

View File

@@ -1,3 +0,0 @@
package com.mogo.och.common.module.manager.autopilot.autopilot.bean
data class SessionWithTime(val sessionId:Long,val setTime:Long)

View File

@@ -1,15 +0,0 @@
package com.mogo.och.common.module.manager.autopilot.trajectory
import com.mogo.eagle.core.data.map.MogoLocation
interface ITrajectoryListListener{
/**
* @param routeArrivied 已经走过的坐标
* @param routeArriving 没有走过的坐标
* @param location 车的坐标
* @return
*/
fun trajectoryCallback(
trajectoryList: MutableList<MogoLocation>,
)
}

View File

@@ -0,0 +1,6 @@
package com.mogo.och.common.module.manager.cache;
public interface ISpCallback {
default void snChange(){}
}

View File

@@ -1,8 +1,32 @@
package com.mogo.och.common.module.manager.cache
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON
import com.mogo.och.common.module.utils.CallerBase
import kotlin.properties.Delegates
object OchSPManager {
object OchSPManager : IMoGoCloudListener, CallerBase<ISpCallback>() {
const val TAG = "${M_OCHCOMMON}OchSPManager"
private var ochSN: String by Delegates.observable("") { _, oldValue, newValue ->
if (oldValue != newValue) {
M_LISTENERS.forEach {
it.value.snChange()
}
}
}
private var ochToken:String by Delegates.observable("") { _, oldValue, newValue ->
if (oldValue != newValue) {
}
}
init {
CallerCloudListenerManager.addListener(TAG,this)
}
@JvmStatic
fun getSn(): String? {
@@ -22,4 +46,18 @@ object OchSPManager {
return SharedPrefsMgr.getInstance().getString(key,default)
}
override fun tokenGot(token: String, sn: String) {
CallerLogger.d(TAG,"获取token和sn:$sn")
this.ochSN = sn
this.ochToken = token
}
override fun doSomeAfterAddListener(tag: String, listener: ISpCallback) {
super.doSomeAfterAddListener(tag, listener)
if(ochSN.isNotEmpty()){
M_LISTENERS.forEach {
it.value.snChange()
}
}
}
}

View File

@@ -64,6 +64,10 @@ object OchChainLogManager {
const val EVENT_KEY_INFO_MAP = "analytics_event_och_map"
// 轨迹方面的日志
fun writeChainLogTrajectory(title: String, info: String) {
writeChainLog(title, info, true, EVENT_KEY_INFE_WITH_TRAJECTORY)
}
fun writeChainLogMap(title: String, info: String) {
writeChainLog(title, info, true, EVENT_KEY_INFO_MAP)
@@ -72,9 +76,11 @@ object OchChainLogManager {
fun writeChainLogDb(title: String, info: String) {
writeChainLog(title, info, true, EVENT_KEY_INFO_DB)
}
fun writeChainLogBluetooth(title: String, info: String) {
writeChainLog(title, info, true, EVENT_KEY_INFO_BLUETOOTH)
}
fun writeChainLogWriteOff(title: String, info: String) {
writeChainLog(title, info, true, EVENT_KEY_INFO_WRITEOFF)
}

View File

@@ -230,7 +230,6 @@ object ScannerManager : IOchLanPassengerStatusListener {
}
override fun onDriverConnectChangeListener(isConnect: Boolean) {
super.onDriverConnectChangeListener(isConnect)
if (isConnect) {
sendScannerState()
}

View File

@@ -82,7 +82,8 @@ data class WriteOffDetialMsg(
val phone: String?=null,// 手机号码
val ticketSize: Int?=null,// 票上几个人
val ticketName: String?=null,// 票的名称
val typeBiz: String?=null,//bus shuttle
val typeBiz: Int?=null,//
val shiftsId:Long?=null,// 班车 任务id
val pipe:String?=null,// 渠道ehsafety mogogosafety
val startStationId:Long?=null,// 开始站点名称
val tenantId:Long?=null// 租户id
@@ -145,7 +146,8 @@ enum class BusinessType {
shuttle,
charter,
taxi,
taxiunmanned
taxiunmanned,
scheduled,
}
enum class ProjectType {

View File

@@ -6,8 +6,8 @@ import com.mogo.commons.env.ProjectUtils
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.Product
import com.mogo.eagle.core.utilcode.util.AppUtils
import com.mogo.och.common.module.biz.login.BusinessEnum
import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType
import com.mogo.och.common.module.manager.socket.lan.bean.EnvType
import com.mogo.och.common.module.manager.socket.lan.bean.ProjectType
@@ -21,8 +21,8 @@ object FlavorUtils {
var projectType: ProjectType? = null
var envType: EnvType? = null
fun getInfo():String{
fun getInfo(): String {
val info = StringBuilder()
when (ProjectUtils.getProjectType()) {
@@ -61,9 +61,9 @@ object FlavorUtils {
info.append(" qa ")
}
}
if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){
if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
info.append(" Driver")
}else if(AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)){
} else if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
info.append(" Passenger")
}
@@ -72,33 +72,40 @@ object FlavorUtils {
return info.toString()
}
fun getBusinessInfo(businessType: Int):String {
val businessEnum = BusinessEnum.valueOf(businessType)
fun getBusinessInfo(businessType: Int): String {
val businessEnum = Product.valueOf(businessType)
FunctionBuildConfig.supportBusiness.forEach {
when (it) {
"shuttle" -> {
val isSupply = businessEnum == BusinessEnum.Shuttle
val isSupply = businessEnum == Product.SHUTTLE
if (isSupply) {
return ""
}
}
"bus" -> {
val isSupply = businessEnum == BusinessEnum.Bus
val isSupply = businessEnum == Product.BUS
if (isSupply) {
return ""
}
}
"taxi" -> {
val isSupply = businessEnum == BusinessEnum.Taxi
val isSupply = businessEnum == Product.TAXI
if (isSupply) {
return ""
}
}
"charter" -> {
val isSupply = businessEnum == BusinessEnum.Charter
val isSupply = businessEnum == Product.CHARTER
if (isSupply) {
return ""
}
}
"scheduled" -> {
val isSupply = businessEnum == Product.SCHEDULED
if (isSupply) {
return ""
}
@@ -110,17 +117,18 @@ object FlavorUtils {
val reason = StringBuilder()
reason.append("业务异常<当前支持:")
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
if(index==FunctionBuildConfig.supportBusiness.size-1){
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
reason.append(s)
}else{
} else {
reason.append("${s},")
}
}
when (businessEnum) {
BusinessEnum.Taxi -> reason.append(" 后台配置:taxi>")
BusinessEnum.Bus -> reason.append(" 后台配置:bus>")
BusinessEnum.Shuttle -> reason.append(" 后台配置:shuttle>")
BusinessEnum.Charter -> reason.append(" 后台配置:charter>")
Product.TAXI -> reason.append(" 后台配置:taxi>")
Product.BUS -> reason.append(" 后台配置:bus>")
Product.SHUTTLE -> reason.append(" 后台配置:shuttle>")
Product.CHARTER -> reason.append(" 后台配置:charter>")
Product.SCHEDULED -> reason.append(" 后台配置:scheduled>")
else -> {
reason.clear()
reason.append("后台未配置业务模式,请联系运营人员为该车配置")
@@ -132,32 +140,37 @@ object FlavorUtils {
fun getEnvCheck() {
businessType =
when (AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode)) {
AppIdentityModeUtils.Product.BUS -> {
Product.BUS -> {
BusinessType.bus
}
AppIdentityModeUtils.Product.TAXI -> {
Product.TAXI -> {
BusinessType.taxi
}
AppIdentityModeUtils.Product.SWEEPER -> {
Product.SWEEPER -> {
BusinessType.none
}
AppIdentityModeUtils.Product.SHUTTLE -> {
Product.SHUTTLE -> {
BusinessType.shuttle
}
AppIdentityModeUtils.Product.CHARTER -> {
Product.CHARTER -> {
BusinessType.charter
}
Product.SCHEDULED -> {
BusinessType.scheduled
}
else -> {
BusinessType.none
}
}
if(vehicleType==null||projectType==null||envType==null) {
if (vehicleType == null || projectType == null || envType == null) {
vehicleType =
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
VehicleType.T1T2
@@ -198,10 +211,12 @@ object FlavorUtils {
}
}
fun checkAllEnv( projectType: ProjectType,
envType: EnvType,
vehicleType: VehicleType,
businessType: BusinessType):String{
fun checkAllEnv(
projectType: ProjectType,
envType: EnvType,
vehicleType: VehicleType,
businessType: BusinessType
): String {
val reason = StringBuilder()
@@ -211,11 +226,11 @@ object FlavorUtils {
Project.MOGO -> projectType == ProjectType.mogo
Project.YANTAI -> projectType == ProjectType.yantai
}
if(!isProjectSupply){
if (!isProjectSupply) {
reason.append("项目异常<当前:${ProjectUtils.getProjectType().name}, 后台配置:${projectType.name}> ")
}
val currentVehicle:String
val currentVehicle: String
val vehicleTypeSupply =
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
currentVehicle = VehicleType.T1T2.name
@@ -233,11 +248,11 @@ object FlavorUtils {
currentVehicle = VehicleType.C1.name
vehicleType == VehicleType.C1
}
if(!vehicleTypeSupply){
if (!vehicleTypeSupply) {
reason.append("车型异常<当前:${currentVehicle}, 后台配置:${vehicleType.name}> ")
}
val currentenvType:String
val currentenvType: String
val envTypeSupply = when (DebugConfig.getNetMode()) {
2 -> {
currentenvType = EnvType.qa.name
@@ -259,19 +274,19 @@ object FlavorUtils {
envType == EnvType.qa
}
}
if(!envTypeSupply){
if (!envTypeSupply) {
reason.append("环境异常<当前:${currentenvType} 后台配置:${envType.name}> ")
}
val businessTypeSupply = checkBusinessMine(businessType)
if(!businessTypeSupply){
if (!businessTypeSupply) {
reason.append("业务异常<当前支持:")
FunctionBuildConfig.supportBusiness.forEachIndexed { index, s ->
if(index==FunctionBuildConfig.supportBusiness.size-1){
if (index == FunctionBuildConfig.supportBusiness.size - 1) {
reason.append(s)
}else{
} else {
reason.append("${s},")
}
}
@@ -281,8 +296,8 @@ object FlavorUtils {
return reason.toString()
}
fun checkBusinessMine(businessType: BusinessType) :Boolean{
if(businessType==BusinessType.none){
fun checkBusinessMine(businessType: BusinessType): Boolean {
if (businessType == BusinessType.none) {
return true
}
FunctionBuildConfig.supportBusiness.forEach {

View File

@@ -143,12 +143,12 @@ class FrameAnimatorContainer (resId: Int,
mHandler?.removeCallbacksAndMessages(null)
val runnable: Runnable = object : Runnable {
override fun run() {
Logger.d(TAG, "runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
//Logger.d(TAG, "runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
val imageView = mSoftReferenceImageView!!.get()
if (!mShouldRun || imageView == null) {
mIsRunning = false
mOnAnimationStoppedListener?.AnimationStopped()
Logger.d(TAG, "结束动画1")
//Logger.d(TAG, "结束动画1")
return
}
mIsRunning = true
@@ -158,13 +158,13 @@ class FrameAnimatorContainer (resId: Int,
if (!mShouldRun || imageView == null) {
mIsRunning = false
mOnAnimationStoppedListener?.AnimationStopped()
Logger.d(TAG, "结束动画2")
//Logger.d(TAG, "结束动画2")
return
}
mHandler?.postDelayed(this, mDelayMillis.toLong())
if (mBitmap != null) { // so Build.VERSION.SDK_INT >= 11
ThreadUtils.getFixedPool(1).submit {
Logger.d(TAG, "decodeResource Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
//Logger.d(TAG, "decodeResource Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
var bitmap: Bitmap? = null
try {
bitmap = BitmapFactory.decodeResource(
@@ -176,7 +176,7 @@ class FrameAnimatorContainer (resId: Int,
e.printStackTrace()
}
ThreadUtils.runOnUiThread({
Logger.d(TAG, "setImageBitmap Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
//Logger.d(TAG, "setImageBitmap Runnable: isMainThread:${ThreadUtils.isMainThread()}, threadName=${Thread.currentThread().name}")
if (bitmap != null) {
imageView.setImageBitmap(bitmap)
} else {

View File

@@ -4,11 +4,10 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.common.module.R
import com.mogo.och.common.module.utils.ResourcesUtils
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title
import kotlinx.android.synthetic.main.common_biz_board.view.iv_toolkit_item_head
import kotlinx.android.synthetic.main.common_biz_board.view.iv_toolkit_item_title
/**
*
@@ -28,7 +27,7 @@ class OperationalInfoGatewayView : ConstraintLayout {
)
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.common_line_view, this, true)
LayoutInflater.from(context).inflate(R.layout.common_biz_board, this, true)
iv_toolkit_item_head.setImageResource(R.drawable.common_biz_operation)
iv_toolkit_item_title.text = ResourcesUtils.getString(R.string.common_operation)
}

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<merge 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:background="@color/acc_default_txt_color"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<ImageView
android:id="@+id/iv_toolkit_item_head"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_160"
android:scaleType="fitXY"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/common_biz_operation"
/>
<TextView
android:id="@+id/iv_toolkit_item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_1"
android:ellipsize="end"
android:gravity="center"
android:maxLines="2"
android:text="@string/common_operation"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_toolkit_item_head"/>
</merge>

Some files were not shown because too many files have changed in this diff Show More