diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java index 1ae92675a1..561d9e8fd3 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -31,10 +31,12 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager 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.autopilot.CallerPlanningRottingListenerManager; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; 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.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils; +import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.StringUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; @@ -56,6 +58,8 @@ import com.mogo.och.bus.presenter.BusModelLoopManager; 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.bus.util.BusVoiceManager; +import com.mogo.och.common.module.bean.dpmsg.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; @@ -73,8 +77,6 @@ import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.utils.ToastUtilsOch; -import com.mogo.och.common.module.voice.VoiceManager; -import com.mogo.och.common.module.voice.VoiceNotice; import org.jetbrains.annotations.NotNull; @@ -777,7 +779,7 @@ public class OrderModel { , arriveStation , isLastStop); } - VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); + BusVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); } /** @@ -843,7 +845,7 @@ public class OrderModel { //车站10s后播报 private void leaveTTSTips(String nextStation,String nextStationKr) { - UiThreadHandler.postDelayed(() -> VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S); + UiThreadHandler.postDelayed(() -> BusVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr),DELAY_10S); } /** @@ -990,8 +992,7 @@ public class OrderModel { OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( DateTimeUtil.getCurrentTimeStamp(), tips,OCHSocketMessageManager.OPERATION_SYSTEM); - //语音提示 - VoiceNotice.showNotice(tips); + BusVoiceManager.INSTANCE.leafTime(tips); } Runnable tip1Runnable = () -> { @@ -1103,7 +1104,7 @@ public class OrderModel { } private void ttsEndTask() { - VoiceManager.INSTANCE.endOrderBus(); + BusVoiceManager.INSTANCE.endOrderBus(); } /** @@ -1152,6 +1153,10 @@ public class OrderModel { } public void sendWriteOffNumToClient(String msg){ + AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,-1); + + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(passengerMsg).getBytes()); } // 车机端上传心跳数据(只在出车状态时上传) diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index d10137f79c..53bddb220b 100644 --- a/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -11,7 +11,6 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; -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.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -28,11 +27,11 @@ import com.mogo.och.bus.callback.ISlidePannelHideCallback; import com.mogo.och.bus.fragment.BusFragment; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.bus.util.BusTrajectoryManager; +import com.mogo.och.bus.util.BusVoiceManager; import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean; import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager; -import com.mogo.och.common.module.voice.VoiceNotice; import com.zhjt.mogo.adas.data.AdasConstants; import java.util.ArrayList; @@ -280,13 +279,12 @@ public class BusPresenter extends Presenter public void playPassenger(WriteOffPassenger passenger) { 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("核验通过"); } + BusVoiceManager.INSTANCE.writeOffCount(passengerNum); } @Override diff --git a/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt new file mode 100644 index 0000000000..71a562a555 --- /dev/null +++ b/OCH/bus/driver/src/main/java/com/mogo/och/bus/util/BusVoiceManager.kt @@ -0,0 +1,91 @@ +package com.mogo.och.bus.util + +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.voice.AIAssist +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.bus.R +import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.tts.base.LangTtsEntity +import com.mogo.tts.base.LanguageType +import java.util.ArrayList + +object BusVoiceManager { + + fun writeOffCount(successNum:Int){ + if(successNum<=1){ + VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3); + }else{ + VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3); + } + } + + fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { + if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + return + } + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_english_tip, it), + LanguageType.CHINESE + ) + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it), + LanguageType.KOREAN + ) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + } + + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { + val list: MutableList = ArrayList() + val context = AbsMogoApplication.getApp() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_english_tip, it), + LanguageType.CHINESE + ) + list.add(chineseTTS) + list.add(engTTS) + + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), + LanguageType.KOREAN + ) + list.add(koreanTTS) + } + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun endOrderBus() { + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) + val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH) + val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) + } + + fun leafTime(tips: String) { + //语音提示 + VoiceNotice.showNotice(tips); + } + +} \ No newline at end of file diff --git a/OCH/bus/driver/src/main/res/values/strings.xml b/OCH/bus/driver/src/main/res/values/strings.xml index c9fc1117b7..331daed88b 100644 --- a/OCH/bus/driver/src/main/res/values/strings.xml +++ b/OCH/bus/driver/src/main/res/values/strings.xml @@ -40,8 +40,11 @@ 暂无任务 + 距离发车时间还有%1$s分钟 + + 平行驾驶 + - 已到达%1$s,带好随身物品,下车请注意安全。 We are arriving at %1$s ,get off with your belongings %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요 @@ -53,10 +56,6 @@ 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。 Thank you for experiencing the self-driving minibus. See you next time 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 - - 距离发车时间还有%1$s分钟 - - 平行驾驶 diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt index bf06c1f154..8d27ffc4ea 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/model/CharterPassengerModel.kt @@ -31,6 +31,7 @@ import com.mogo.och.charter.passenger.callback.* import com.mogo.och.charter.passenger.constant.CharterPassengerConst import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.charter.passenger.net.BusPassengerServiceManager +import com.mogo.och.charter.passenger.utils.CharterVoiceManager import com.mogo.och.common.module.wigets.toast.ToastCharterUtils import com.mogo.och.charter.passenger.utils.VoiceFocusManager import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg @@ -49,7 +50,6 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.PinYinUtil import com.mogo.och.common.module.utils.RxUtils -import com.mogo.och.common.module.voice.VoiceManager import com.mogo.och.common.module.voice.VoiceNotice import io.reactivex.Observable import io.reactivex.disposables.Disposable @@ -578,7 +578,7 @@ object CharterPassengerModel { AbsMogoApplication.getApp() .getString(R.string.charter_p_end_order_15min), 2 ) - VoiceManager.surplus15min(VoiceFocusManager.getVoiceCmdCallBack()) + CharterVoiceManager.surplus15min(VoiceFocusManager.getVoiceCmdCallBack()) d(M_BUS_P + TAG, "倒计时15分钟${it.orderNo}") SharedPrefsMgr.getInstance() .putBoolean("${it.orderNo}$min5Speak", true) @@ -980,7 +980,7 @@ object CharterPassengerModel { if (order != null && lineId != null && siteId != null) { OchChainLogManager.writeChainLog(this.orderInfo.toString(),"到站成功:${order.siteName}") BeautifyManager.notifyViewChange(BeautifyManager.ChangeTypeEnum.ARRIVED_DEST) - VoiceManager.arrivedStation( + CharterVoiceManager.arrivedStation( order.siteName!!, order.siteNameKr ?: "", VoiceFocusManager.getVoiceCmdCallBack() @@ -1119,7 +1119,7 @@ object CharterPassengerModel { fun leaveStation() { orderInfo?.siteName?.let { cn -> - VoiceManager.leaveStation( + CharterVoiceManager.leaveStation( cn, orderInfo?.siteNameKr ?: "", VoiceFocusManager.getVoiceCmdCallBack() diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt index f3a7fcfc8b..09017951c0 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt @@ -17,8 +17,8 @@ import com.mogo.eagle.core.utilcode.util.BarUtils 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.devicemanage.LightAirconditionDoorManager -import com.mogo.och.common.module.voice.VoiceManager 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 @@ -154,7 +154,7 @@ class M1CarUserNoOrderFragment : CallerLogger.d(M_BUS_P + TAG, "已经添加正在移除") } m1CarUserNoOrderFragment.show(parentFragmentManager, TAG) - VoiceManager.endOrder() + CharterVoiceManager.endOrder() CallerLogger.d(M_BUS_P + TAG, "展示开关门") } else { CallerLogger.d(M_BUS_P + TAG, "dialog 1s内执行一次") diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/utils/CharterVoiceManager.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/utils/CharterVoiceManager.kt new file mode 100644 index 0000000000..1d32c87c93 --- /dev/null +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/utils/CharterVoiceManager.kt @@ -0,0 +1,88 @@ +package com.mogo.och.charter.passenger.utils + +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.voice.AIAssist +import com.mogo.och.charter.passenger.R +import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.tts.base.IMogoTTSCallback +import com.mogo.tts.base.LangTtsEntity +import com.mogo.tts.base.LanguageType +import java.util.ArrayList + +object CharterVoiceManager { + + fun arrivedStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) { + val contenxt = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + contenxt.getString(R.string.charter_arrived_station_zh, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + contenxt.getString(R.string.charter_arrived_station_en, it), + LanguageType.CHINESE + ) + val koreanTTS = LangTtsEntity( + contenxt.getString(R.string.charter_arrived_station_ko, siteNameKR?:it), + LanguageType.KOREAN + ) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + } + + VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack) + } + + fun leaveStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) { + val list: MutableList = ArrayList() + val contenxt = AbsMogoApplication.getApp() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + contenxt.getString(R.string.charter_leave_station_zh, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + contenxt.getString(R.string.charter_leave_station_en, it), + LanguageType.CHINESE + ) + list.add(chineseTTS) + list.add(engTTS) + + val koreanTTS = LangTtsEntity( + contenxt.getString(R.string.charter_leave_station_ko, siteNameKR ?: it), + LanguageType.KOREAN + ) + list.add(koreanTTS) + } + VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack) + } + + fun surplus15min(callBack: IMogoTTSCallback?=null) { + val contenxt = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + val chineseTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_zh), LanguageType.CHINESE) + val engTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_en), LanguageType.ENGLISH) + val koreanTTS = LangTtsEntity(contenxt.getString(R.string.charter_surplus15_order_ko), LanguageType.KOREAN) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack) + } + fun endOrder(){ + endOrder(null) + } + fun endOrder(callBack: IMogoTTSCallback?=null) { + val contenxt = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + val chineseTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_zh), LanguageType.CHINESE) + val engTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_en), LanguageType.ENGLISH) + val koreanTTS = LangTtsEntity(contenxt.getString(R.string.charter_end_order_ko), LanguageType.KOREAN) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack) + } + +} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/res/values/strings.xml b/OCH/charter/passenger/src/main/res/values/strings.xml index dc0b149dab..b8f18b4d3c 100644 --- a/OCH/charter/passenger/src/main/res/values/strings.xml +++ b/OCH/charter/passenger/src/main/res/values/strings.xml @@ -62,12 +62,20 @@ + We are arriving at %1$s + %1$s 역에 도착했습니다 + 已到达%1$s + 车辆起步,请扶稳坐好,前方到站 %1$s + The next station is %1$s + 전방에서 역에 도착하는 %1$s + 15分钟后包车就要结束了,稍后小助手会自动为您寻找停车点 + There are 15 minutes left from the end of chartering. Please arrange your time reasonably + 전세버스 종료 후 15분 남았습니다. 여행 시간을 합리적으로 안배해 주십시오 - - - - + 感谢您体验\'蘑菇车联\'自动驾驶小巴车,本次旅程已结束,我们下次乘车再见 + Thank you for experiencing the self-driving minibus. See you next time + 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt deleted file mode 100644 index 498a9ef234..0000000000 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt +++ /dev/null @@ -1,166 +0,0 @@ -package com.mogo.och.common.module.voice - -import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.voice.AIAssist -import com.mogo.och.common.module.R -import com.mogo.tts.base.IMogoTTSCallback -import com.mogo.tts.base.LangTtsEntity -import com.mogo.tts.base.LanguageType -import java.util.ArrayList - -object VoiceManager { - - fun arrivedStation(siteNameCN: String?) { - arrivedStation(siteNameCN,"") - } - fun arrivedStation(siteNameCN: String?,siteNameKR: String?) { - arrivedStation(siteNameCN,siteNameKR,null) - } - - fun arrivedStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) { - val contenxt = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_zh, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_en, it), - LanguageType.CHINESE - ) - val koreanTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_ko, siteNameKR?:it), - LanguageType.KOREAN - ) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - } - - VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack) - } - - fun leaveStation(siteNameCN: String?){ - leaveStation(siteNameCN,"") - } - - fun leaveStation(siteNameCN: String?,siteNameKR: String?){ - leaveStation(siteNameCN,siteNameKR,null) - } - - fun leaveStation(siteNameCN: String?, siteNameKR: String?,callBack: IMogoTTSCallback?=null) { - val list: MutableList = ArrayList() - val contenxt = AbsMogoApplication.getApp() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_zh, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_en, it), - LanguageType.CHINESE - ) - list.add(chineseTTS) - list.add(engTTS) - - val koreanTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_ko, siteNameKR ?: it), - LanguageType.KOREAN - ) - list.add(koreanTTS) - } - VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack) - } - - fun surplus5min(){ - surplus15min(null) - } - - fun surplus15min(callBack: IMogoTTSCallback?=null) { - val contenxt = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - val chineseTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_zh), LanguageType.CHINESE) - val engTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_en), LanguageType.ENGLISH) - val koreanTTS = LangTtsEntity(contenxt.getString(R.string.surplus15_order_ko), LanguageType.KOREAN) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack) - } - fun endOrder(){ - endOrder(null) - } - fun endOrder(callBack: IMogoTTSCallback?=null) { - val contenxt = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - val chineseTTS = LangTtsEntity(contenxt.getString(R.string.end_order_zh), LanguageType.CHINESE) - val engTTS = LangTtsEntity(contenxt.getString(R.string.end_order_en), LanguageType.ENGLISH) - val koreanTTS = LangTtsEntity(contenxt.getString(R.string.end_order_ko), LanguageType.KOREAN) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack) - } - - fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_english_tip, it), - LanguageType.CHINESE - ) - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it), - LanguageType.KOREAN - ) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - } - - VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) - } - - fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { - val list: MutableList = ArrayList() - val context = AbsMogoApplication.getApp() - siteNameCN?.let { - val chineseTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_tip, it), - LanguageType.CHINESE - ) - val engTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_english_tip, it), - LanguageType.CHINESE - ) - list.add(chineseTTS) - list.add(engTTS) - - val koreanTTS = LangTtsEntity( - context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), - LanguageType.KOREAN - ) - list.add(koreanTTS) - } - VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) - } - - fun endOrderBus() { - val context = AbsMogoApplication.getApp() - val list: MutableList = ArrayList() - val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) - val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH) - val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) - list.add(chineseTTS) - list.add(engTTS) - list.add(koreanTTS) - VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) - } - -} \ No newline at end of file diff --git a/OCH/common/common/src/main/res/values/strings.xml b/OCH/common/common/src/main/res/values/strings.xml index 16d624ac59..60dcf03c44 100644 --- a/OCH/common/common/src/main/res/values/strings.xml +++ b/OCH/common/common/src/main/res/values/strings.xml @@ -15,34 +15,6 @@ 网络异常,请稍后重试 请求出现异常,请稍后重试 - We are arriving at %1$s - %1$s 역에 도착했습니다 - 已到达%1$s - - 车辆起步,请扶稳坐好,前方到站 %1$s - The next station is %1$s - 전방에서 역에 도착하는 %1$s - - 15分钟后包车就要结束了,稍后小助手会自动为您寻找停车点 - There are 15 minutes left from the end of chartering. Please arrange your time reasonably - 전세버스 종료 후 15분 남았습니다. 여행 시간을 합리적으로 안배해 주십시오 - - 感谢您体验\'蘑菇车联\'自动驾驶小巴车,本次旅程已结束,我们下次乘车再见 - Thank you for experiencing the self-driving minibus. See you next time - 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 - - 已到达%1$s,带好随身物品,下车请注意安全。 - We are arriving at %1$s ,get off with your belongings - %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요 - - 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。 - The next station is %1$s ,please get ready for your arrival - 전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요 - - 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。 - Thank you for experiencing the self-driving minibus. See you next time - 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 - 取消 扫描二维码完成车辆绑定 \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java index ac87137f3f..e297b3119c 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -22,6 +22,7 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.och.bus.bean.BusRoutesResponse; +import com.mogo.och.bus.util.ShuttleVoiceManager; import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; @@ -64,8 +65,6 @@ import com.mogo.och.common.module.manager.autopilotmanager.OCHAdasAbilityManager import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; -import com.mogo.och.common.module.voice.VoiceManager; -import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.common.module.bean.dpmsg.BusCacheKey; import com.mogo.och.data.bean.BusTransferData; import com.mogo.och.data.manager.cache.CacheDataManager; @@ -719,7 +718,7 @@ public class OrderModel { , isLastStop); } - VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); + ShuttleVoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); sendArrivedStationToClient(arriveStation); @@ -823,7 +822,7 @@ public class OrderModel { UiThreadHandler.postDelayed(new Runnable() { @Override public void run() {//延迟10s播报 - VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr); + ShuttleVoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr); } },DELAY_10S); @@ -974,8 +973,7 @@ public class OrderModel { OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( DateTimeUtil.getCurrentTimeStamp(), tips,OCHSocketMessageManager.OPERATION_SYSTEM); - //语音提示 - VoiceNotice.showNotice(tips); + ShuttleVoiceManager.INSTANCE.showLeafTime(tips); } Runnable tip1Runnable = new Runnable() { @@ -1059,7 +1057,7 @@ public class OrderModel { clearBusStationDatas(); queryBusRoutes();// 重新获取任务 removeTipRunnables(); - VoiceManager.INSTANCE.endOrderBus(); + ShuttleVoiceManager.INSTANCE.endOrderBus(); sendEndTaskToClient(); } } diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt index c68dd225a9..a48714e689 100644 --- a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/model/TicketModel.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.och.bus.bean.WriteOffCountResponse import com.mogo.och.bus.bean.WriteOffPassenger import com.mogo.och.bus.net.OrderServiceManager +import com.mogo.och.bus.util.ShuttleVoiceManager import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.bean.dpmsg.WriteOffDevicesMsg @@ -27,7 +28,6 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.common.module.voice.VoiceNotice.showNotice import io.reactivex.Observable import io.reactivex.ObservableEmitter import io.reactivex.ObservableOnSubscribe @@ -137,7 +137,7 @@ object TicketModel : IReceivedMsgListener, IMogoOnMessageListener 1) { //多人播报 "x人" ---》x人核验通过 - showNotice(ticketSize.toString() + "人核验通过", AIAssist.LEVEL3) OrderModel.getInstance().sendWriteOffNumToClient(ticketSize.toString() + "人核验通过") } else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过" - showNotice("核验通过", AIAssist.LEVEL3) OrderModel.getInstance().sendWriteOffNumToClient("核验通过") } + ShuttleVoiceManager.writeOffCount(ticketSize) var tempPhone = phone if (tempPhone.length > 8) { diff --git a/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt new file mode 100644 index 0000000000..efbbd2d883 --- /dev/null +++ b/OCH/shuttle/driver/src/main/java/com/mogo/och/bus/util/ShuttleVoiceManager.kt @@ -0,0 +1,96 @@ +package com.mogo.och.bus.util + +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.voice.AIAssist +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.bus.R +import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.tts.base.LangTtsEntity +import com.mogo.tts.base.LanguageType +import java.util.ArrayList + +object ShuttleVoiceManager { + + fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { + if (AppIdentityModeUtils.isM2(FunctionBuildConfig.appIdentityMode)) { + return + } + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_english_tip, it), + LanguageType.CHINESE + ) + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it), + LanguageType.KOREAN + ) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + } + + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { + val list: MutableList = ArrayList() + val context = AbsMogoApplication.getApp() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_english_tip, it), + LanguageType.CHINESE + ) + list.add(chineseTTS) + list.add(engTTS) + + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), + LanguageType.KOREAN + ) + list.add(koreanTTS) + } + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun endOrderBus() { + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) + val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH) + val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) + } + + fun writeOffCount(successNum:Int){ + if(successNum<=1){ + VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3); + }else{ + VoiceNotice.showNotice("$successNum 人核验通过", AIAssist.LEVEL3) + } + } + + // 距离发车还有1分钟 + fun showLeafTime(tips: String) { + //语音提示 + VoiceNotice.showNotice(tips) + } + + fun writeOffFaile(reaseon:String) { + VoiceNotice.showNotice("验票失败,${reaseon}", AIAssist.LEVEL3) + } + +} \ No newline at end of file diff --git a/OCH/shuttle/driver/src/main/res/values/strings.xml b/OCH/shuttle/driver/src/main/res/values/strings.xml index dbde761190..7558acbeec 100644 --- a/OCH/shuttle/driver/src/main/res/values/strings.xml +++ b/OCH/shuttle/driver/src/main/res/values/strings.xml @@ -43,6 +43,12 @@ 本站核销成功:0人 + + 距离发车时间还有%1$s分钟 + + 平行驾驶 + + 已到达%1$s,带好随身物品,下车请注意安全。 We are arriving at %1$s ,get off with your belongings @@ -57,8 +63,4 @@ 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 - 距离发车时间还有%1$s分钟 - - 平行驾驶 -