[charter]

[3.2.0]
[车门操作统一到一个地方]
This commit is contained in:
yangyakun
2023-04-24 19:45:10 +08:00
parent 17f425a186
commit cb3f29336d
20 changed files with 226 additions and 286 deletions

View File

@@ -4,7 +4,7 @@ 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.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.och.bus.passenger.bean.LoopInfo import com.mogo.och.bus.passenger.bean.LoopInfo
import com.mogo.och.bus.passenger.constant.CharterPassengerConst import com.mogo.och.bus.passenger.constant.CharterPassengerConst
import com.mogo.och.bus.passenger.utils.RxUtils import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers

View File

@@ -4,7 +4,7 @@ import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.mvp.IView import com.mogo.commons.mvp.IView
import com.mogo.commons.mvp.Presenter import com.mogo.commons.mvp.Presenter
import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.utils.RxUtils import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
abstract class BusBasePassengerFunctionDevicePresenter<V : IView?>(view: V) : abstract class BusBasePassengerFunctionDevicePresenter<V : IView?>(view: V) :

View File

@@ -5,92 +5,15 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) : class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) :
BusBasePassengerFunctionDevicePresenter<M1CarUserNoOrderFragment?>(view), BusBasePassengerFunctionDevicePresenter<M1CarUserNoOrderFragment?>(view){
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
companion object { companion object {
private const val TAG = "BusPassengerFunctionPresenter" private const val TAG = "BusPassengerFunctionPresenter"
} }
private var subscribe: Disposable? = null
private var subscribeDoorStatus: Disposable? = null
private var gnssSpeed = 0.0
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this)
CharterPassengerModel.setControllerStatusCallback(TAG) { location ->
location?.let {
gnssSpeed = it.gnssInfo.vehicleSpeed
}
}
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
OCHM1LightAirconditionDoorStatusManager.removeListener(TAG)
disposeSubscribe(subscribe)
disposeSubscribe(subscribeDoorStatus)
}
override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {
if (!isFirst) {
if (isOpen) {
ToastUtils.showShort("已开启车门")
} else {
ToastUtils.showShort("已关门车门")
}
}
}
fun openDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if (!canOpenOrCloseDoor.isNullOrEmpty()) {
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe {
if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
ToastUtils.showShort("车门无法开启,请使用车内物理按钮")
}
}
}
fun closeDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if (!canOpenOrCloseDoor.isNullOrBlank()) {
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe {
if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
ToastUtils.showShort("车门无法关闭,请使用车内物理按钮")
}
}
}
private fun canOpenOrCloseDoor(): String? {
if (gnssSpeed < 0.01) {
return null
} else {
return "车辆正在运行、请稍后再试"
}
}
} }

View File

@@ -7,16 +7,12 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.ui.M1DeviceFragment import com.mogo.och.bus.passenger.ui.M1DeviceFragment
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) : class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
BusBasePassengerFunctionDevicePresenter<M1DeviceFragment?>(view), BusBasePassengerFunctionDevicePresenter<M1DeviceFragment?>(view) {
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback {
private var subscribe: Disposable? = null
private var subscribeDoorStatus: Disposable? = null
private var gnssSpeed =0.0
companion object { companion object {
private const val TAG = "BusPassengerFunctionDevicePresenter" private const val TAG = "BusPassengerFunctionDevicePresenter"
@@ -24,75 +20,10 @@ class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
override fun onCreate(owner: LifecycleOwner) { override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner) super.onCreate(owner)
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this)
CharterPassengerModel.setControllerStatusCallback(TAG) { location ->
location?.let {
gnssSpeed = it.gnssInfo.vehicleSpeed
}
}
} }
override fun onDestroy(owner: LifecycleOwner) { override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner) super.onDestroy(owner)
OCHM1LightAirconditionDoorStatusManager.removeListener(TAG)
disposeSubscribe(subscribe)
disposeSubscribe(subscribeDoorStatus)
}
override fun onDoorStatusCallback(isOpen: Boolean,isFirst: Boolean) {
if(!isFirst) {
if (isOpen) {
ToastUtils.showShort("已开启车门")
} else {
ToastUtils.showShort("已关门车门")
}
}
}
fun openDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if(!canOpenOrCloseDoor.isNullOrEmpty()){
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe(6000) {
if (!OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
ToastUtils.showShort("车门无法开启,请使用车内物理按钮")
}
}
}
fun closeDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if(!canOpenOrCloseDoor.isNullOrBlank()){
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
disposeSubscribe(subscribeDoorStatus)
subscribeDoorStatus = createSubscribe(6000) {
if (OCHM1LightAirconditionDoorStatusManager.doorStatus.isOpen) {
ToastUtils.showShort("车门无法关闭,请使用车内物理按钮")
}
}
}
private fun canOpenOrCloseDoor():String?{
if(gnssSpeed<0.01){
return null
}else{
return "车辆正在运行、请稍后再试"
}
} }
// 靠边停车 // 靠边停车

View File

@@ -7,12 +7,16 @@ 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.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.ui.M1SoftFragment import com.mogo.och.bus.passenger.ui.M1SoftFragment
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
BusBasePassengerFunctionDevicePresenter<M1SoftFragment?>(view), BusBasePassengerFunctionDevicePresenter<M1SoftFragment?>(view),
OCHM1LightAirconditionDoorStatusManager.OCHM1LightAirconditionDoorCallback { LightAirconditionDoorCallback {
companion object { companion object {
private const val TAG = "BusPassengerFunctionSoftPresenter" private const val TAG = "BusPassengerFunctionSoftPresenter"
} }
@@ -26,23 +30,23 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
override fun onCreate(owner: LifecycleOwner) { override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner) super.onCreate(owner)
OCHM1LightAirconditionDoorStatusManager.addListener(TAG, this) LightAirconditionDoorStatusManager.addListener(TAG, this)
} }
override fun onDestroy(owner: LifecycleOwner) { override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner) super.onDestroy(owner)
OCHM1LightAirconditionDoorStatusManager.removeListener(TAG) LightAirconditionDoorStatusManager.removeListener(TAG)
} }
/** /**
* 空调状态变化 * 空调状态变化
*/ */
override fun onAirconditionStatusCallback(heaterIsOpen: Boolean,airconditionStatus: OCHM1LightAirconditionDoorStatusManager.AirconditionStatus,isFirst: Boolean) { override fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, CallerLogger.d(SceneConstant.M_BUS_P + TAG,
"回写--空调开关:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen}" + "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}" +
"空调温度:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" +
"空调模式:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" +
"空调风速:${OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}") "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}")
UiThreadHandler.post { UiThreadHandler.post {
if(airconditionStatus.isOpen){ if(airconditionStatus.isOpen){
mView?.setAirconditionHeaterView( mView?.setAirconditionHeaterView(
@@ -66,7 +70,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
/** /**
* 暖风机状态变化 * 暖风机状态变化
*/ */
override fun onHeaterStatusCallback(airconditionIsOpen:Boolean,heaterStatue: OCHM1LightAirconditionDoorStatusManager.HeaterStatue,isFirst: Boolean) { override fun onHeaterStatusCallback(airconditionIsOpen:Boolean, heaterStatue: HeaterStatue, isFirst: Boolean) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, CallerLogger.d(SceneConstant.M_BUS_P + TAG,
"回写--暖风机开关:${heaterStatue.isOpen}" + "回写--暖风机开关:${heaterStatue.isOpen}" +
"风速:${heaterStatue.windSpeed}") "风速:${heaterStatue.windSpeed}")
@@ -93,7 +97,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
/** /**
* 灯状态变化 * 灯状态变化
*/ */
override fun onLightTop1Callback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, CallerLogger.d(SceneConstant.M_BUS_P + TAG,
"回写--顶灯1开关:${lightStatus.isOpenLight1}" + "回写--顶灯1开关:${lightStatus.isOpenLight1}" +
"顶灯2开关:${lightStatus.isOpenLight2}" + "顶灯2开关:${lightStatus.isOpenLight2}" +
@@ -105,7 +109,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
/** /**
* 灯状态变化 * 灯状态变化
*/ */
override fun onLightTop2Callback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, CallerLogger.d(SceneConstant.M_BUS_P + TAG,
"回写--顶灯1开关:${lightStatus.isOpenLight1}" + "回写--顶灯1开关:${lightStatus.isOpenLight1}" +
"顶灯2开关:${lightStatus.isOpenLight2}" + "顶灯2开关:${lightStatus.isOpenLight2}" +
@@ -118,7 +122,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
/** /**
* 灯状态变化 * 灯状态变化
*/ */
override fun onLightAtmosphereCallback(lightStatus: OCHM1LightAirconditionDoorStatusManager.LightStatus,isFirst: Boolean) { override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, CallerLogger.d(SceneConstant.M_BUS_P + TAG,
"回写--顶灯1开关:${lightStatus.isOpenLight1}" + "回写--顶灯1开关:${lightStatus.isOpenLight1}" +
"顶灯2开关:${lightStatus.isOpenLight2}" + "顶灯2开关:${lightStatus.isOpenLight2}" +
@@ -137,10 +141,10 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd) CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd)
disposeSubscribe(airconditionDisposable) disposeSubscribe(airconditionDisposable)
airconditionDisposable = createSubscribe(10000){ airconditionDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen&& if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&& LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&& LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
OCHM1LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) { LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~") ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
} }
} }
@@ -150,7 +154,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd) CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd)
disposeSubscribe(airconditionDisposable) disposeSubscribe(airconditionDisposable)
airconditionDisposable = createSubscribe(10000){ airconditionDisposable = createSubscribe(10000){
if (OCHM1LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~") ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
} }
} }
@@ -163,8 +167,8 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd) CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd)
disposeSubscribe(heaterDisposable) disposeSubscribe(heaterDisposable)
heaterDisposable = createSubscribe(10000){ heaterDisposable = createSubscribe(10000){
if (!OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen&& if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen&&
OCHM1LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) { LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) {
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~") ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")
} }
} }
@@ -175,7 +179,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0) CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0)
disposeSubscribe(heaterDisposable) disposeSubscribe(heaterDisposable)
heaterDisposable = createSubscribe(10000){ heaterDisposable = createSubscribe(10000){
if (OCHM1LightAirconditionDoorStatusManager.heaterStatue.isOpen) { if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) {
ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的 ToastUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的
} }
} }
@@ -187,14 +191,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
if(leftLight){ if(leftLight){
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1) CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1)
subscribeLightTop1 = createSubscribe{ subscribeLightTop1 = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }
}else{ }else{
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2) CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2)
subscribeLightTop1 = createSubscribe{ subscribeLightTop1 = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }
@@ -206,14 +210,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
if(rightLight){ if(rightLight){
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1) CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1)
subscribeLightTop2 = createSubscribe{ subscribeLightTop2 = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }
}else{ }else{
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2) CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2)
subscribeLightTop2 = createSubscribe{ subscribeLightTop2 = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }
@@ -225,14 +229,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
if (atmosphereLight) { if (atmosphereLight) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1) CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1)
subscribeLightAtmosphere = createSubscribe{ subscribeLightAtmosphere = createSubscribe{
if (!OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }
} else { } else {
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2) CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2)
subscribeLightAtmosphere = createSubscribe{ subscribeLightAtmosphere = createSubscribe{
if (OCHM1LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~") ToastUtils.showShort("操作未生效,请稍后重试吧~")
} }
} }

View File

@@ -24,7 +24,7 @@ import com.mogo.och.bus.passenger.ui.MainFragment
import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.manager.OCHM1LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager
import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.common.module.utils.NumberFormatUtil
@@ -32,21 +32,20 @@ import com.mogo.och.common.module.utils.SoundPoolHelper
import com.mogo.och.common.module.voice.VoiceNotice import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import java.util.* import java.util.*
class BusPassengerPresenter(view: MainFragment?) : class BusPassengerPresenter(view: MainFragment?) :
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view), BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
IBusPassengerControllerStatusCallback, IDistanceTimeCallback, IOrderChangeCallback, IDistanceTimeCallback, IOrderChangeCallback, IOrderStatusChangeListener,
IOrderStatusChangeListener, OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback { OCHPlanningStopSideStatusManager.OCHPlanningActionsCallback, LightAirconditionDoorCallback {
private var subscribe: Disposable? = null
private var gnssSpeed = 0.0f
override fun onCreate(owner: LifecycleOwner) { override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner) super.onCreate(owner)
CharterPassengerModel.init() CharterPassengerModel.init()
// 定位监听 // 定位监听
CharterPassengerModel.setControllerStatusCallback(TAG,this)
CharterPassengerModel.setiDistanceTimeCallback(this) CharterPassengerModel.setiDistanceTimeCallback(this)
CharterPassengerModel.setCarTypeChangeListener(this) CharterPassengerModel.setCarTypeChangeListener(this)
CharterPassengerModel.setStatusChangeListener(TAG,this) CharterPassengerModel.setStatusChangeListener(TAG,this)
@@ -59,7 +58,6 @@ class BusPassengerPresenter(view: MainFragment?) :
override fun onDestroy(owner: LifecycleOwner) { override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner) super.onDestroy(owner)
CharterPassengerModel.setControllerStatusCallback(TAG,null)
CharterPassengerModel.setiDistanceTimeCallback(null) CharterPassengerModel.setiDistanceTimeCallback(null)
CharterPassengerModel.setCarTypeChangeListener(null) CharterPassengerModel.setCarTypeChangeListener(null)
CallerTelematicListenerManager.removeListener(TAG) CallerTelematicListenerManager.removeListener(TAG)
@@ -81,12 +79,6 @@ class BusPassengerPresenter(view: MainFragment?) :
mView?.setOrderTime(sumTime, arrivedTime) mView?.setOrderTime(sumTime, arrivedTime)
} }
} }
override fun onCarLocationChanged(location: MogoLocation?) {
location?.let {
setSpeed(it.gnssSpeed)
gnssSpeed = it.gnssSpeed
}
}
val msgReceived = object : IReceivedMsgListener { val msgReceived = object : IReceivedMsgListener {
override fun onReceivedMsg(type: Int, byteArray: ByteArray) { override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
@@ -98,11 +90,11 @@ class BusPassengerPresenter(view: MainFragment?) :
) as BaseDPMsg ) as BaseDPMsg
when (msg.type) { when (msg.type) {
DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> { DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> {
val doorStatus = OCHM1LightAirconditionDoorStatusManager.doorStatus val doorStatus = LightAirconditionDoorStatusManager.doorStatus
if(doorStatus.isOpen){ if(doorStatus.isOpen){
closeDoor() LightAirconditionDoorManager.go2OpenDoor(false)
}else{ }else{
openDoor() LightAirconditionDoorManager.go2OpenDoor(true)
} }
} }
DPMsgType.TYPE_COMMON.type -> { DPMsgType.TYPE_COMMON.type -> {
@@ -128,40 +120,6 @@ class BusPassengerPresenter(view: MainFragment?) :
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.m1_voice_di) SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.m1_voice_di)
} }
fun openDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if(!canOpenOrCloseDoor.isNullOrEmpty()){
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
}
fun closeDoor() {
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if(!canOpenOrCloseDoor.isNullOrBlank()){
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
disposeSubscribe(subscribe)
subscribe = createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
}
private fun canOpenOrCloseDoor():String?{
if(gnssSpeed<0.01){
return null
}else{
return "车辆正在运行、请稍后再试"
}
}
/** /**
* 计算剩余距离和剩余时间 * 计算剩余距离和剩余时间
*/ */
@@ -290,4 +248,13 @@ class BusPassengerPresenter(view: MainFragment?) :
} }
} }
override fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {
if (!isFirst) {
if (isOpen) {
ToastUtils.showShort("已开启车门")
} else {
ToastUtils.showShort("已关门车门")
}
}
}
} }

View File

@@ -4,9 +4,7 @@ import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.widget.CompoundButton
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.FragmentTransaction
import com.mogo.commons.mvp.MvpDialogFragment import com.mogo.commons.mvp.MvpDialogFragment
@@ -14,11 +12,9 @@ import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger 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.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.SharedPrefs
import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter import com.mogo.och.bus.passenger.presenter.BusPassengerCarUseAndNoOrderPresenter
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import kotlinx.android.synthetic.m1.m1_contain_fragment.*
import kotlinx.android.synthetic.m1.m1_order_end.* import kotlinx.android.synthetic.m1.m1_order_end.*
/** /**
@@ -45,10 +41,10 @@ class M1CarUserNoOrderFragment :
override fun initViews() { override fun initViews() {
dialog?.setCancelable(false) dialog?.setCancelable(false)
iv_end_order_opendoor.onClick { iv_end_order_opendoor.onClick {
mPresenter?.openDoor() LightAirconditionDoorManager.go2OpenDoor(true)
} }
iv_end_order_closedoor.onClick { iv_end_order_closedoor.onClick {
mPresenter?.closeDoor() LightAirconditionDoorManager.go2OpenDoor(false)
} }
} }

View File

@@ -36,15 +36,6 @@ class M1DeviceFragment :
mPresenter?.startStopSide() mPresenter?.startStopSide()
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
} }
tv_car_setting_opendoor.onClick {
// 开门 AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(2);
mPresenter?.openDoor()
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
}
tv_car_setting_closedoor.onClick {
mPresenter?.closeDoor()
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
}
} }
override fun createPresenter(): BusPassengerFunctionDevicePresenter = override fun createPresenter(): BusPassengerFunctionDevicePresenter =

View File

@@ -28,7 +28,7 @@ import com.mogo.och.bus.passenger.net.BusPassengerServiceManager
import com.mogo.och.bus.passenger.ui.M1ContainFragment import com.mogo.och.bus.passenger.ui.M1ContainFragment
import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter
import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter
import com.mogo.och.bus.passenger.utils.RxUtils import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.bus.passenger.view.BottomDecoration import com.mogo.och.bus.passenger.view.BottomDecoration
import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.constant.OchCommonConst

View File

@@ -0,0 +1,32 @@
package com.mogo.och.bus.passenger.ui.view.door
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.R
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.disposables.Disposable
class CloseDoorView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatTextView(context, attrs, defStyleAttr) {
init {
setOnClickListener {
go2OpenDoor()
}
}
private fun go2OpenDoor(){
LightAirconditionDoorManager.go2OpenDoor(false)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
}
}

View File

@@ -0,0 +1,27 @@
package com.mogo.och.bus.passenger.ui.view.door
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import com.mogo.och.bus.passenger.R
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.utils.SoundPoolHelper
class OpenDoorView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatTextView(context, attrs, defStyleAttr) {
init {
setOnClickListener {
go2OpenDoor()
}
}
private fun go2OpenDoor(){
LightAirconditionDoorManager.go2OpenDoor(true)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
}
}

View File

@@ -47,7 +47,7 @@
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go" app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <com.mogo.och.bus.passenger.ui.view.door.CloseDoorView
android:id="@+id/tv_car_setting_opendoor" android:id="@+id/tv_car_setting_opendoor"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -62,7 +62,7 @@
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_stopside" app:layout_constraintStart_toEndOf="@+id/tv_car_setting_stopside"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <com.mogo.och.bus.passenger.ui.view.door.OpenDoorView
android:id="@+id/tv_car_setting_closedoor" android:id="@+id/tv_car_setting_closedoor"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -0,0 +1,26 @@
package com.mogo.och.common.module.manager.devicemanage
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
interface LightAirconditionDoorCallback {
fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus,
isFirst: Boolean) {
}
fun onHeaterStatusCallback(airconditionIsOpen: Boolean, heaterStatue: HeaterStatue,
isFirst: Boolean) {
}
fun onDoorStatusCallback(isOpen: Boolean, isFirst: Boolean) {}
fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) {
}
fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) {}
fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) {}
}

View File

@@ -0,0 +1,48 @@
package com.mogo.och.common.module.manager.devicemanage
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
object LightAirconditionDoorManager {
private const val TAG = "LightAirconditionDoorManager"
private var dooorSubscribe: Disposable? = null
private var doorStatusSubscribe: Disposable? = null
fun go2OpenDoor(isOpen:Boolean){
val canOpenOrCloseDoor = canOpenOrCloseDoor()
if(!canOpenOrCloseDoor.isNullOrBlank()){
ToastUtils.showShort(canOpenOrCloseDoor)
return
}
RxUtils.disposeSubscribe(dooorSubscribe)
dooorSubscribe = RxUtils.createSubscribe(1000) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(0)
}
if(isOpen) {
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(1)
}else{
CallerAutoPilotControlManager.sendRoboBusJinlvM1FrontDoorCmd(2)
}
RxUtils.disposeSubscribe(doorStatusSubscribe)
doorStatusSubscribe = RxUtils.createSubscribe(6000) {
if (LightAirconditionDoorStatusManager.doorStatus.isOpen) {
ToastUtils.showShort("车门无法关闭,请使用车内物理按钮")
}else{
ToastUtils.showShort("车门无法开启,请使用车内物理按钮")
}
}
}
private fun canOpenOrCloseDoor(): String? {
val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02()
return if(location.gnssSpeed<0.01){
null
}else{
"车辆正在运行、请稍后再试"
}
}
}

View File

@@ -1,11 +1,15 @@
package com.mogo.och.common.module.manager package com.mogo.och.common.module.manager.devicemanage
import chassis.VehicleStateOuterClass import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener
import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerRoboBusJinlvM1StatesListenerManager
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.DoorStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener { object LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListener {
private const val TAG = "OCHM1LightAirconditionDoorStatusManager" private const val TAG = "OCHM1LightAirconditionDoorStatusManager"
init { init {
@@ -13,7 +17,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
CallerRoboBusJinlvM1StatesListenerManager.setListenerHz(TAG,5) CallerRoboBusJinlvM1StatesListenerManager.setListenerHz(TAG,5)
} }
val M_LISTENERS: ConcurrentHashMap<String, OCHM1LightAirconditionDoorCallback> = val M_LISTENERS: ConcurrentHashMap<String, LightAirconditionDoorCallback> =
ConcurrentHashMap() ConcurrentHashMap()
val airconditionStatus = AirconditionStatus(false, 0, 26, 2) val airconditionStatus = AirconditionStatus(false, 0, 26, 2)
@@ -23,7 +27,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
fun addListener( fun addListener(
tag: String, tag: String,
listener: OCHM1LightAirconditionDoorCallback listener: LightAirconditionDoorCallback
) { ) {
if (M_LISTENERS.containsKey(tag)) { if (M_LISTENERS.containsKey(tag)) {
return return
@@ -47,7 +51,7 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
* 删除监听 * 删除监听
* @param listener 要删除的监听对象 * @param listener 要删除的监听对象
*/ */
fun removeListener(listener: OCHM1LightAirconditionDoorCallback) { fun removeListener(listener: LightAirconditionDoorCallback) {
if (!M_LISTENERS.containsValue(listener)) { if (!M_LISTENERS.containsValue(listener)) {
return return
} }
@@ -58,36 +62,6 @@ object OCHM1LightAirconditionDoorStatusManager : IMoGoRoboBusJinlvM1StatesListen
} }
} }
interface OCHM1LightAirconditionDoorCallback {
fun onAirconditionStatusCallback(heaterIsOpen:Boolean,airconditionStatus: AirconditionStatus,isFirst: Boolean){}
fun onHeaterStatusCallback(airconditionIsOpen: Boolean,heaterStatue: HeaterStatue,isFirst: Boolean){}
fun onDoorStatusCallback(isOpen: Boolean,isFirst: Boolean){}
fun onLightTop1Callback(lightStatus: LightStatus,isFirst: Boolean){}
fun onLightTop2Callback(lightStatus: LightStatus,isFirst: Boolean){}
fun onLightAtmosphereCallback(lightStatus: LightStatus,isFirst: Boolean){}
}
data class AirconditionStatus(
var isOpen: Boolean,
var pattert: Int,
var temperature: Int,
var windSpeed: Int
)
data class HeaterStatue(var isOpen: Boolean, var windSpeed: Int)
data class DoorStatus(var isOpen: Boolean)
data class LightStatus(
var isOpenLight1: Boolean,
var isOpenLight2: Boolean,
var isOpenatmosphere: Boolean
)
override fun onRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) { override fun onRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) {
val airConditionerState = states.airConditionerState val airConditionerState = states.airConditionerState
val heaterState = states.heaterState val heaterState = states.heaterState

View File

@@ -0,0 +1,8 @@
package com.mogo.och.common.module.manager.devicemanage.data
data class AirconditionStatus(
var isOpen: Boolean,
var pattert: Int,
var temperature: Int,
var windSpeed: Int
)

View File

@@ -0,0 +1,3 @@
package com.mogo.och.common.module.manager.devicemanage.data
data class DoorStatus(var isOpen: Boolean)

View File

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

View File

@@ -0,0 +1,7 @@
package com.mogo.och.common.module.manager.devicemanage.data
data class LightStatus(
var isOpenLight1: Boolean,
var isOpenLight2: Boolean,
var isOpenatmosphere: Boolean
)

View File

@@ -1,4 +1,4 @@
package com.mogo.och.bus.passenger.utils package com.mogo.och.common.module.utils
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers