合并1.0.2

This commit is contained in:
yangyakun
2023-02-23 15:11:09 +08:00
17 changed files with 127 additions and 74 deletions

View File

@@ -75,7 +75,6 @@ dependencies {
implementation rootProject.ext.dependencies.amapnavi3dmap
implementation project(":OCH:mogo-och-common-module")
compileOnly project(":libraries:mogo-map")
compileOnly project(':libraries:mogo-adas')
implementation project(':core:mogo-core-res')
testImplementation 'junit:junit:4.12'

View File

@@ -4,15 +4,12 @@ import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.commons.module.status.IMogoStatusChangedListener
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.commons.module.status.StatusDescriptor
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getMapUIController
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager.stepInDayMode
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
import com.mogo.och.bus.passenger.ui.MainPassengerFragment
/**
* 网约车-Bus-乘客端
@@ -23,7 +20,7 @@ import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
class MogoOCHBusPassenger : IMogoOCH {
private var mActivity: FragmentActivity? = null
private var mContainerId = 0
private var mPassengerFragment: BusPassengerRouteFragment? = null
private var mPassengerFragment: MainPassengerFragment? = null
override fun createCoverage(activity: FragmentActivity, containerId: Int) {}
override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? {
mActivity = activity
@@ -56,7 +53,7 @@ class MogoOCHBusPassenger : IMogoOCH {
private fun showFragment() {
if (mPassengerFragment == null) {
d(SceneConstant.M_TAXI_P + TAG, "准备add fragment======")
mPassengerFragment = BusPassengerRouteFragment()
mPassengerFragment = MainPassengerFragment()
mActivity!!.supportFragmentManager.beginTransaction()
.add(mContainerId, mPassengerFragment!!).commitAllowingStateLoss()
return

View File

@@ -2,9 +2,6 @@ package com.mogo.och.bus.passenger.bean.request;
public
/**
* @author congtaowang
* @since 2021/3/22
*
* 根据车机行驶线路站点信息
*/
class BusPassengerQueryLineRequest {

View File

@@ -4,8 +4,6 @@ import com.amap.api.maps.model.LatLng;
import java.util.List;
import mogo.telematics.pad.MessagePad;
/**
* Created on 2022/3/31
*/

View File

@@ -3,14 +3,13 @@ package com.mogo.och.bus.passenger.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback
import com.mogo.och.bus.passenger.model.BusPassengerModel
import com.mogo.och.bus.passenger.ui.BusPassengerFunctionDeviceFragment
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager
import com.zhidao.support.adas.high.AdasManager
import io.reactivex.disposables.Disposable
class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragment?) :
@@ -68,9 +67,9 @@ class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragme
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(0)
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(1)
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe {
if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
@@ -87,9 +86,9 @@ class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragme
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(0)
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(2)
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe {
if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
@@ -117,7 +116,7 @@ class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragme
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 靠边停车
AdasManager.getInstance().sendPlanningCmd(1)
CallerAutoPilotControlManager.sendPlanningCmd(1)
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
ToastUtils.showShort("因车辆正在平行驾驶中无法靠边停车,请稍后再试")
@@ -137,7 +136,7 @@ class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragme
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 重新起步
AdasManager.getInstance().sendPlanningCmd(2)
CallerAutoPilotControlManager.sendPlanningCmd(2)
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
ToastUtils.showShort("因车辆正在平行驾驶中无法靠边停车,请稍后再试")

View File

@@ -1,14 +1,13 @@
package com.mogo.och.bus.passenger.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
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.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.ui.BusPassengerFunctionSoftFragment
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager
import com.zhidao.support.adas.high.AdasManager
import io.reactivex.disposables.Disposable
class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?) :
@@ -135,9 +134,9 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
fun openAndSetAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "" +
"打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd")
AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
disposeSubscribe(airconditionDisposable)
airconditionDisposable = createSubscribe(5000){
airconditionDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
@@ -148,9 +147,9 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
}
fun closeAircondition() {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调")
AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(2,0,0,0)
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,0,0,0)
disposeSubscribe(airconditionDisposable)
airconditionDisposable = createSubscribe(2000){
airconditionDisposable = createSubscribe(10000){
if (OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
}
@@ -161,23 +160,23 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
*/
fun openAndSetHeader(windSpeedCmd: Int) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风机、档位${windSpeedCmd}")
AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
disposeSubscribe(heaterDisposable)
heaterDisposable = createSubscribe(2000){
heaterDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
}
}
}
fun closeHeader(){
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风机")
AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(2,0)
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0)
disposeSubscribe(heaterDisposable)
heaterDisposable = createSubscribe(2000){
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
heaterDisposable = createSubscribe(10000){
if (OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的
}
}
}
@@ -186,14 +185,14 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯2:$leftLight")
disposeSubscribe(subscribeLightTop1)
if(leftLight){
AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(1)
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1)
subscribeLightTop1 = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
}
}
}else{
AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(2)
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2)
subscribeLightTop1 = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
@@ -205,14 +204,14 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯1:$rightLight")
disposeSubscribe(subscribeLightTop2)
if(rightLight){
AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(1)
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1)
subscribeLightTop2 = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
}
}
}else{
AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(2)
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2)
subscribeLightTop2 = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
@@ -224,14 +223,14 @@ class BusPassengerFunctionSoftPresenter(view: BusPassengerFunctionSoftFragment?)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "氛围灯:$atmosphereLight")
disposeSubscribe(subscribeLightAtmosphere)
if (atmosphereLight) {
AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(1)
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1)
subscribeLightAtmosphere = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
}
}
} else {
AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(2)
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2)
subscribeLightAtmosphere = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")

View File

@@ -3,16 +3,17 @@ package com.mogo.och.bus.passenger.presenter
import androidx.lifecycle.LifecycleOwner
import com.amap.api.maps.model.LatLng
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback
import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback
import com.mogo.och.bus.passenger.model.BusPassengerModel
import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment
import com.mogo.och.bus.passenger.ui.MainPassengerFragment
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import java.util.*
class BusPassengerPresenter(view: BusPassengerRouteFragment?) :
BusBasePassengerFunctionDevicePresenter<BusPassengerRouteFragment?>(view),
class BusPassengerPresenter(view: MainPassengerFragment?) :
BusBasePassengerFunctionDevicePresenter<MainPassengerFragment?>(view),
IBusPassengerControllerStatusCallback, IBusPassengerAutopilotPlanningCallback {
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
@@ -28,11 +29,15 @@ class BusPassengerPresenter(view: BusPassengerRouteFragment?) :
BusPassengerModel.setControllerStatusCallback(TAG,null)
}
private fun setSpeed(speed:Float){
val speedKM =(Math.abs(speed) * 3.6f).toInt()
mView?.setSpeed(speedKM.toString())
UiThreadHandler.post {
val speedKM =(Math.abs(speed) * 3.6f).toInt()
mView?.setSpeed(speedKM.toString())
}
}
private fun setDistanceAndTime(distance: String,distanceUnit: String,sumTime:String,arrivedTime:String){
mView?.setDistanceAndTime(distance,distanceUnit,sumTime,arrivedTime)
UiThreadHandler.post {
mView?.setDistanceAndTime(distance, distanceUnit, sumTime, arrivedTime)
}
}
companion object{
private const val TAG = "BusPassengerPresenter"

View File

@@ -6,12 +6,7 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionDevicePresenter
import com.mogo.och.common.module.utils.SoundPoolHelper
import com.zhidao.support.adas.high.AdasManager
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.m1.bus_p_function_setting_devices_fragment.*
import java.util.concurrent.TimeUnit
/**
* @author: yangyakun
@@ -38,7 +33,6 @@ class BusPassengerFunctionDeviceFragment :
}
tv_car_setting_stopside.setOnClickListener {
// 执行靠边停车 AdasManager.getInstance().sendPlanningCmd(1);
AdasManager.getInstance().sendPlanningCmd(1);
mPresenter?.startStopSide()
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
}

View File

@@ -10,6 +10,9 @@ import android.media.AudioManager
import android.os.Bundle
import android.view.Gravity
import android.view.View
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import android.view.animation.LinearInterpolator
import android.widget.RadioButton
import android.widget.SeekBar
import android.widget.SeekBar.OnSeekBarChangeListener
@@ -39,6 +42,7 @@ import kotlinx.android.synthetic.m1.bus_p_function_setting_soft_fragment.*
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.TimeUnit
/**
* @author: yangyakun
* @date: 2023/1/28
@@ -55,30 +59,46 @@ class BusPassengerFunctionSoftFragment :
private var subscribeLightTop1: Disposable? = null
private var subscribeLightTop2: Disposable? = null
private var subscribeAtmosphere: Disposable? = null
private var subscribeAnimator: Disposable? = null
private var animator1: ObjectAnimator? = null
private val loadingAni = ObjectAnimator.ofFloat(iv_loading, "rotation", 0f, 90f ,180f, 270f, 360f).apply {
repeatCount = -1
interpolator = LinearInterpolator()
duration = 1000
}
override fun initViews() {
rg_select_function.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.tv_setting_aircondition -> {
g_aircondition_setting.visibility = View.VISIBLE
g_light_setting.visibility = View.GONE
g_voice_setting.visibility = View.GONE
if(loadingAni.isRunning){
iv_loading.visibility = View.VISIBLE
g_aircondition_setting.visibility = View.GONE
}else{
g_aircondition_setting.visibility = View.VISIBLE
}
}
R.id.tv_setting_lighting -> {
g_light_setting.visibility = View.VISIBLE
g_voice_setting.visibility = View.GONE
g_aircondition_setting.visibility = View.GONE
iv_loading.visibility = View.GONE
}
R.id.tv_setting_voice -> {
g_voice_setting.visibility = View.VISIBLE
g_aircondition_setting.visibility = View.GONE
g_light_setting.visibility = View.GONE
iv_loading.visibility = View.GONE
}
else -> {}
}
if(rb_pattern_heating.isChecked){
iv_temperature_select.visibility = View.GONE
}
}
rg_select_function.check(R.id.tv_setting_aircondition)
setAirconditionListener()
@@ -100,30 +120,43 @@ class BusPassengerFunctionSoftFragment :
}
}
fun showAni(){
iv_loading.visibility = View.VISIBLE
loadingAni.target = iv_loading
loadingAni.start()
g_aircondition_setting.visibility = View.GONE
subscribeAnimator = Observable.timer(10000, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe {
loadingAni.cancel()
iv_loading.visibility = View.GONE
if(tv_setting_aircondition.isChecked){
g_aircondition_setting.visibility = View.VISIBLE
if(rb_pattern_heating.isChecked){
iv_temperature_select.visibility = View.GONE
}
}
}
}
private fun setAirconditionListener() {
// 开关空调或暖风机
tv_aircondition_switch.setOnCheckedChangeListener { buttonView, isChecked ->
if(!buttonView.isPressed){
return@setOnCheckedChangeListener
}
if(isChecked){
tv_aircondition_switch.setText("关闭空调")
}else{
tv_aircondition_switch.setText("打开空调")
}
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {
if (isChecked) {// 打开暖风机
openHeater()
} else {// 关闭暖风机
closeHeater()
}
} else {
if (isChecked) {// 打开空调
openAircondition()
} else {//关闭空调
closeAircondition()
if(isChecked){//打开
tv_aircondition_switch.setText("关闭空调")
if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {
openHeater()// 打开暖风机
} else {
openAircondition()// 打开空调
}
showAni()
}else{// 关闭
tv_aircondition_switch.setText("打开空调")
closeHeater()// 关闭暖风机
closeAircondition()//关闭空调
}
}
// 模式调节
@@ -162,6 +195,9 @@ class BusPassengerFunctionSoftFragment :
openAircondition()
}
}
if(tv_aircondition_switch.isChecked) {
showAni()
}
}
// 风速调节
@@ -603,6 +639,8 @@ class BusPassengerFunctionSoftFragment :
mPresenter?.disposeSubscribe(subscribeLightTop1)
mPresenter?.disposeSubscribe(subscribeLightTop2)
mPresenter?.disposeSubscribe(subscribeAtmosphere)
mPresenter?.disposeSubscribe(subscribeAnimator)
super.onDestroy()
}

View File

@@ -21,8 +21,8 @@ import java.lang.ref.WeakReference
* @author: wangmingjun
* @date: 2022/4/12
*/
class BusPassengerRouteFragment :
MvpFragment<BusPassengerRouteFragment?, BusPassengerPresenter?>() {
class MainPassengerFragment :
MvpFragment<MainPassengerFragment?, BusPassengerPresenter?>() {
private var bpFunctionGroupDialogFragment: WeakReference<BusPassengerFunctionFragment>? = null

View File

@@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager
import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
import kotlinx.android.synthetic.m1.bus_p_m1_view_status_bar.view.*
import me.jessyan.autosize.utils.AutoSizeUtils
@@ -47,6 +48,7 @@ class StatusBarView @JvmOverloads constructor(
}
//添加view控制
CallerHmiViewControlListenerManager.addListener(TAG,this)
CallerHmiViewControlListenerManager.setListenerHz(TAG,5)
// 添加换肤监听
CallerSkinModeListenerManager.addListener(TAG, this)
@@ -82,9 +84,11 @@ class StatusBarView @JvmOverloads constructor(
}
override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) {
val bmsSoc = states.bmsSoc
progress.progress = bmsSoc.toInt()
tv_power_cos.text = "${bmsSoc.roundToInt()}%"
UiThreadHandler.post {
val bmsSoc = states.bmsSoc
progress.progress = bmsSoc.toInt()
tv_power_cos.text = "${bmsSoc.roundToInt()}%"
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -42,7 +42,6 @@
android:layout_marginTop="@dimen/dp_74"
android:layout_marginStart="@dimen/dp_29"
android:layout_width="@dimen/dp_152"
android:gravity="center"
android:background="@drawable/bus_p_car_speed"
android:orientation="vertical"
android:layout_height="@dimen/dp_152">
@@ -52,12 +51,15 @@
android:text="0"
android:textSize="@dimen/dp_60"
android:gravity="center"
android:layout_marginTop="@dimen/dp_12"
android:textColor="@color/bus_p_m1_f5fbff"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:textSize="@dimen/dp_19"
android:text="@string/bus_p_m1_speed_unit"
android:layout_marginTop="-10dp"
android:layout_gravity="center_horizontal"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@@ -287,6 +287,17 @@
android:textSize="@dimen/dp_24" />
</RadioGroup>
<ImageView
android:id="@+id/iv_loading"
android:visibility="gone"
android:src="@drawable/bus_p_loading"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_aircondition"
android:layout_width="@dimen/dp_73"
android:layout_height="@dimen/dp_73"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/g_aircondition_setting"
android:layout_width="wrap_content"

View File

@@ -769,4 +769,8 @@ class MoGoAutopilotControlProvider :
override fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean {
return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd)
}
override fun sendPlanningCmd(cmd: Int): Boolean {
return AdasManager.getInstance().sendPlanningCmd(cmd)
}
}

View File

@@ -312,4 +312,6 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean
fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean
fun sendPlanningCmd(cmd: Int): Boolean
}

View File

@@ -450,4 +450,8 @@ object CallerAutoPilotControlManager {
fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean {
return providerApi?.sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) ?: false
}
fun sendPlanningCmd(cmd: Int): Boolean {
return providerApi?.sendPlanningCmd(cmd) ?: false
}
}