[M2] M2 司机端乘客屏通信

This commit is contained in:
wangmingjun
2023-02-14 20:18:56 +08:00
parent 87a2c2201a
commit 528bd96049
6 changed files with 77 additions and 2 deletions

View File

@@ -6,13 +6,17 @@ import com.mogo.cloud.commons.utils.CoordinateUtils
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.data.telematic.TelematicConstant
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
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.storage.SharedPrefsMgr
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.NetworkUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.R
@@ -24,8 +28,10 @@ import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback
import com.mogo.och.bus.passenger.callback.DrivingInfoCallback
import com.mogo.och.bus.passenger.constant.BusPassengerConst
import com.mogo.och.bus.passenger.network.PM2ModelLoopManager
import com.mogo.och.common.module.bean.AppConnectMsg
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.voice.VoiceNotice.showNotice
import mogo.telematics.pad.MessagePad
import kotlin.math.abs
@@ -82,6 +88,8 @@ class PM2DrivingModel private constructor() {
// 定位监听
CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener)
CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,5)//设置5hz, 1s返回一次
CallerTelematicListenerManager.addListener(TAG,mReceivedMsgListener)
}
fun releaseListener(){
@@ -100,6 +108,21 @@ class PM2DrivingModel private constructor() {
mAutoStatusCallback = autoPilotStatusCallback
}
private val mReceivedMsgListener: IReceivedMsgListener =
object : IReceivedMsgListener{
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息
if (TelematicConstant.BUSINESS_STRING == type){
val msg = GsonUtils.fromJson(byteArray.toString(),AppConnectMsg::class.java) as AppConnectMsg
if (msg.isPlay){ //播报
showNotice(msg.msg)
}
if (msg.isViewShow){//显示
}
}
}
}
private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener =
object : IMoGoChassisLocationGCJ02Listener{
override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) {

View File

@@ -156,7 +156,8 @@
android:textSize="@dimen/dp_42"
android:textStyle="bold"
android:text="--"
app:layout_constraintTop_toTopOf="@+id/img_time_clock_bg"
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintTop_toTopOf="@+id/img_time_bg"
app:layout_constraintLeft_toLeftOf="@+id/speed_tv"
android:textColor="@color/m2_current_time_tv_color"/>

View File

@@ -311,9 +311,11 @@ public class BusPresenter extends Presenter<BusFragment>
int passengerNum = passenger.passengerSize;
if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过
VoiceNotice.showNotice(passengerNum+"人核验通过", AIAssist.LEVEL3);
OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过");
}else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过"
// mView.playDI();
VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3);
OrderModel.getInstance().sendWriteOffNumToClient("核验通过");
}
}

View File

@@ -42,7 +42,7 @@
<!-- region tts -->
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意。</string>
<string name="bus_arrived_station_tip">已到达%1$s带好随身物品下车请注意安全</string>
<string name="bus_leave_station_tip">车辆起步,请扶稳坐好,前方到站是%1$s请下车的乘客做好准备。</string>
<string name="bus_end_task_tip">感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。</string>
<!-- endregion -->

View File

@@ -24,6 +24,7 @@ import com.mogo.commons.module.status.StatusDescriptor;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.telematic.TelematicConstant;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener;
@@ -32,7 +33,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager;
import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager;
import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
@@ -52,6 +55,7 @@ import com.mogo.och.bus.net.OrderServiceManager;
import com.mogo.och.bus.util.BusAnalyticsManager;
import com.mogo.och.bus.util.BusSendTripInfoManager;
import com.mogo.och.bus.util.BusTrajectoryManager;
import com.mogo.och.common.module.bean.AppConnectMsg;
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager;
import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage;
import com.mogo.och.common.module.biz.constant.OchCommonConst;
@@ -554,6 +558,8 @@ public class OrderModel {
leaveTTSTips(nextStation);
sendStartStationToClient(nextStation);
if (busRoutesResult != null) {
boolean isLastStop = false;
if (leaveIndex + 1 == stationList.size() - 1) {
@@ -685,6 +691,41 @@ public class OrderModel {
VoiceNotice.showNotice(String.format(mContext
.getString(R.string.bus_arrived_station_tip),
arriveStation));
sendArrivedStationToClient(arriveStation);
}
private void sendArrivedStationToClient(String arriveStation) {
AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext
.getString(R.string.bus_arrived_station_tip),
arriveStation));
CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING,
GsonUtils.toJson(arrivedMsg).getBytes());
}
private void sendStartStationToClient(String nextStation) {
AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext
.getString(R.string.bus_leave_station_tip),
nextStation));
UiThreadHandler.postDelayed(()->{
CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING,
GsonUtils.toJson(arrivedMsg).getBytes());
},DELAY_10S);
}
private void sendEndTaskToClient() {
AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext
.getString(R.string.bus_end_task_tip));
CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING,
GsonUtils.toJson(arrivedMsg).getBytes());
}
public void sendWriteOffNumToClient(String msg){
AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg);
CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING,
GsonUtils.toJson(arrivedMsg).getBytes());
}
/**
@@ -983,6 +1024,7 @@ public class OrderModel {
removeTipRunnables();
// startOrStopQueryPassengerWriteOff(false);
VoiceNotice.showNotice(mContext.getString(R.string.bus_end_task_tip));
sendEndTaskToClient();
}
}

View File

@@ -0,0 +1,7 @@
package com.mogo.och.common.module.bean
/**
* @author: wangmingjun
* @date: 2023/2/14
*/
data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String)