Merge remote-tracking branch 'origin/dev_minibus-d_230425_3.2.0' into dev_minibus-d_230425_3.2.0

This commit is contained in:
yangyakun
2023-05-24 17:35:12 +08:00
9 changed files with 86 additions and 55 deletions

View File

@@ -97,12 +97,12 @@ class TeleMsgHandler : IMsgHandler {
AppConfigInfo.iPCMacAddress = carConfig.macAddress
AppConfigInfo.dockerVersion = carConfig.dockVersion
listener?.connectDevice(!carConfig.dockVersion.contains("2.3.0"))
CallerDevaToolsManager.getBindingCarInfo(carConfig.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
invokeNettyConnResult(
"司机屏发送给乘客屏配置信息为:${
TextFormat.printer().escapingNonAscii(false).printToString(carConfig)
}"
)
CallerDevaToolsManager.getBindingCarInfo(carConfig.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
}
// SN
10 -> {

View File

@@ -35,7 +35,7 @@ import com.zhjt.mogo_core_function_devatools.apm.*
import com.mogo.eagle.core.function.api.upgrade.*
import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.binding.BindingCarManager.Companion.bindingCarManager
import com.zhjt.mogo_core_function_devatools.binding.*
import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter
import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigImpl
@@ -94,7 +94,7 @@ class DevaToolsProvider : IDevaToolsProvider {
//升级(鹰眼/工控)与监控服务
iPCReportManager.initServer()
moFangManager.init(mContext!!)
bindingCarManager.init(mContext!!)
BindingCarManager.init(mContext!!)
apmEnvProvider.init(if(DebugConfig.isDebug()) "0" else "1", "${ DebugConfig.getNetMode() }", mDockerVersion ?: "")
BadCaseManager.init()
}
@@ -319,29 +319,29 @@ class DevaToolsProvider : IDevaToolsProvider {
}
override fun modifyCarInfo(callBack: (ModifyBindingcarInfo) -> Unit) {
bindingCarManager.modifyCarInfo(callBack)
BindingCarManager.modifyCarInfo(callBack)
}
override fun getBindingCarInfo(macAddress: String, widevineIDWithMd5: String) {
bindingCarManager.getBindingCarInfo(macAddress, widevineIDWithMd5)
BindingCarManager.getBindingCarInfo(macAddress, widevineIDWithMd5)
}
override fun upgradeConfirm(images: List<String>, padSn: String, releaseId: String) {
bindingCarManager.upgradeConfirm(images, padSn, releaseId)
BindingCarManager.upgradeConfirm(images, padSn, releaseId)
}
override fun queryContainers(padSn: String, dockerVersion: String) {
bindingCarManager.queryContainers(padSn, dockerVersion)
BindingCarManager.queryContainers(padSn, dockerVersion)
}
override fun queryAppUpgrade() {
bindingCarManager.queryAppUpgrade()
BindingCarManager.queryAppUpgrade()
}
override fun apmEnvProvider(): IApmEnvProvider = apmEnvProvider
override fun queryObuUpgrade(obuVersionName: String) {
bindingCarManager.queryObuUpgrade(obuVersionName)
BindingCarManager.queryObuUpgrade(obuVersionName)
}
override fun upgradeProvider(): IMoGoUpgradeProvider? {

View File

@@ -1,7 +1,9 @@
package com.zhjt.mogo_core_function_devatools.binding
import android.annotation.*
import android.content.Context
import android.text.TextUtils
import android.util.*
import com.elegant.utils.UiThreadHandler
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.constants.SharedPrefsConstants
@@ -27,15 +29,10 @@ import mogo.telematics.pad.MessagePad
/**
* 车辆绑定
*/
class BindingCarManager : IMoGoAutopilotCarConfigListener {
@SuppressLint("StaticFieldLeak")
object BindingCarManager : IMoGoAutopilotCarConfigListener {
companion object {
private const val TAG = "BindingCarManager"
val bindingCarManager by lazy(LazyThreadSafetyMode.SYNCHRONIZED) {
BindingCarManager()
}
}
private const val TAG = "BindingCarManager"
private var mContext: Context? = null
@@ -68,20 +65,7 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener {
if (!TextUtils.isEmpty(carConfigResp.macAddress)) {
Logger.d("${SceneConstant.M_BINDING}${TAG}",
"onAutopilotCarConfig carConfigResp.macAddress = ${carConfigResp.macAddress} ")
var flag = false
if (mAddress.isNullOrEmpty()) {
flag = true
}
Logger.d("${SceneConstant.M_BINDING}${TAG}",
"onAutopilotCarConfig - triggerUpgrade -> $flag")
getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
if (flag) {
queryAppUpgrade()
val obuVersion = mObuVersion
if (obuVersion != null) {
queryObuUpgrade(obuVersion)
}
}
}
}
@@ -91,12 +75,27 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener {
* @param macAddress
*/
fun getBindingCarInfo(macAddress: String, widevineIDWithMd5: String) {
Log.d("UPGRADE", "-- getBindingCarInfo -- 1 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
var flag = false
if (!TextUtils.isEmpty(macAddress) && TextUtils.isEmpty(mAddress)) {
Log.d("UPGRADE", "-- getBindingCarInfo -- 2 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
flag = true
}
if (!TextUtils.isEmpty(macAddress) && !TextUtils.equals(macAddress, mAddress)) {
mAddress = macAddress
}
if (flag) {
Log.d("UPGRADE", "-- getBindingCarInfo -- 3 -- : [mac: $macAddress, md5: $widevineIDWithMd5]")
queryAppUpgrade()
val obuVersion = mObuVersion
if (obuVersion != null && !TextUtils.isEmpty(obuVersion)) {
queryObuUpgrade(obuVersion)
}
}
CallerLogger.d("${SceneConstant.M_BINDING}${TAG}",
"getBindingcarInfo macAddress = $macAddress--widevineIDWithMd5 = $widevineIDWithMd5 ---screenType = $screenType"
)
SharedPrefsMgr.getInstance(mContext!!).putString(SharedPrefsConstants.APP_MAC, macAddress)
mAddress = macAddress
mWidevineIDWithMd5 = widevineIDWithMd5
if (screenType == 1) { //司机屏
driverScreen(macAddress, widevineIDWithMd5)
@@ -183,12 +182,17 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener {
* 查询app是否需要升级
*/
fun queryAppUpgrade() {
Logger.d("${SceneConstant.M_BINDING}${TAG}", "queryAppUpgrade---role.toString() = $role ---mAddress = $mAddress ---spMac = ${SharedPrefsMgr.getInstance(mContext!!).getString(SharedPrefsConstants.APP_MAC)}")
(if (!mAddress.isNullOrEmpty()) mAddress else SharedPrefsMgr.getInstance(mContext!!)
.getString(SharedPrefsConstants.APP_MAC))?.let {
Logger.d("${SceneConstant.M_BINDING}${TAG}", "queryAppUpgrade---mAddress = $mAddress")
Log.d("UPGRADE", "---- 1 ----")
var macAddress = mAddress
if (TextUtils.isEmpty(macAddress)) {
Log.d("UPGRADE", "---- 2 ----")
macAddress = SharedPrefsMgr.getInstance(mContext!!)
.getString(SharedPrefsConstants.APP_MAC)
}
if (macAddress != null && !TextUtils.isEmpty(macAddress)) {
Log.d("UPGRADE", "---- 3 ----[mac: $macAddress]")
UpgradeAppNetWorkManager.instance
?.getAppUpgradeInfo(mContext, it, role.toString() + "")
?.getAppUpgradeInfo(mContext, macAddress, role.toString() + "")
}
}

View File

@@ -1,11 +1,12 @@
package com.zhjt.mogo_core_function_devatools.tts
import android.content.Context
import com.elegant.utils.storage.SharedPrefsMgr
import android.util.Log
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.zhjt.mogo_core_function_devatools.trace.TraceManager
@@ -21,16 +22,14 @@ class TtsManager : IMoGoCloudListener {
}
fun initTts(context: Context) {
val sn = SharedPrefsMgr.getInstance(context).getString("sn")
if (sn.isNullOrEmpty()) {
CallerCloudListenerManager.addListener(TraceManager.TAG, this)
}
CallerCloudListenerManager.addListener(TraceManager.TAG, this)
AIAssist.getInstance(context)
}
override fun tokenGot(token: String, sn: String) {
ThreadUtils.runOnUiThread {
Log.d(TAG, "网络获取到sn为:${sn}准备重新初始化Tts")
ThreadUtils.runOnUiThread({
AIAssist.getInstance(AbsMogoApplication.getApp()).initTtsAgain(sn)
}
}, ThreadUtils.MODE.QUEUE)
}
}

View File

@@ -68,7 +68,7 @@ class UpgradeAppNetWorkManager private constructor() {
Log.d(TAG, "getAppUpgradeInfo: -> records:" + records?.entries?.joinToString(",") { itx -> "key:${itx.key} -> value:[${itx.value.joinToString(",") { "${it.first},${it.second}" } }]"})
val versionCode = AppUtils.getAppVersionCode()
val versionName = AppUtils.getAppVersionName()
d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
Log.d(SceneConstant.M_BINDING + TAG, "getAppUpgradeInfo mac = $macAddress---type = $type---sn = $sn---versionCode =$versionCode---versionName =$versionName")
val request = UpgradeAppRequest(sn, macAddress, type, versionName, "1")
val requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request))
provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade)
@@ -99,7 +99,7 @@ class UpgradeAppNetWorkManager private constructor() {
private suspend fun doUpgrade(info: UpgradeAppInfo) {
if (info.result != null) {
val versionCode = AppUtils.getAppVersionCode()
d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo url = " + info.result.appUrl + "----code = " + info.result.versionCode + "--versionCode =" + versionCode + "--info.result = " + info.result)
Log.d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo url = " + info.result.appUrl + "----code = " + info.result.versionCode + "--versionCode =" + versionCode + "--info.result = " + info.result)
if (info.result.versionCode > versionCode) {
val patchInfo = info.result.patchInfo
var downloadUrl: String = info.result.appUrl
@@ -150,7 +150,7 @@ class UpgradeAppNetWorkManager private constructor() {
deleteApkFile()
}
} else {
d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo onNext info == null")
Log.d(SceneConstant.M_BINDING + TAG, "UpgradeAppInfo onNext info == null")
deleteApkFile()
}
}

View File

@@ -6,10 +6,25 @@ import com.mogo.eagle.core.function.call.base.CallerBase
object CallerCloudListenerManager : CallerBase<IMoGoCloudListener>() {
@Volatile
private var token: String? = null
@Volatile
private var sn: String? = null
override fun doSomeAfterAddListener(tag: String, listener: IMoGoCloudListener) {
super.doSomeAfterAddListener(tag, listener)
if (!token.isNullOrEmpty() && !sn.isNullOrEmpty()) {
listener.tokenGot(token!!, sn!!)
}
}
/**
* 分发获取到的设备sn
*/
fun invokeCloudTokenGot(token: String, sn: String) {
this.token = token
this.sn = sn
M_LISTENERS.forEach {
val listener = it.value
listener.tokenGot(token, sn)

View File

@@ -1,6 +1,7 @@
package com.mogo.commons.voice;
import android.content.Context;
import android.util.Log;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
@@ -82,8 +83,11 @@ public class AIAssist {
* 重新初始化Tts(首次sn获取比较慢而TTS初始化比较早会拿不到授权)
*/
public void initTtsAgain(String sn) {
Log.d(TAG, "网络获取SN后重新初始化Tts!");
if (mTTS != null) {
mTTS.initTts(sn);
} else {
Log.d(TAG, "TTS对象创建失败!");
}
}

View File

@@ -941,19 +941,21 @@ public class AMapViewWrapper implements IMogoMapView,
*/
private void loadPreVehicleModel() {
CallerLogger.INSTANCE.d(M_MAP + TAG, "添加感知模型到地图中……");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI, "添加感知模型到地图中……preVehicleStrWeiZhi=");
ThreadUtils.getIoPool().submit(() -> {
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI, "添加感知模型到地图中……preVehicleStrWeiZhi=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE, "添加感知模型到地图中……preVehicleStrPeople=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE, "添加感知模型到地图中……preVehicleStrPeople=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE, "添加感知模型到地图中……preVehicleStrBicycle=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BICYCLE, "添加感知模型到地图中……preVehicleStrBicycle=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE, "添加感知模型到地图中……preVehicleStrTaChe=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TA_CHE, "添加感知模型到地图中……preVehicleStrTaChe=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO, "添加感知模型到地图中……preVehicleStrMoto=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_MOTO, "添加感知模型到地图中……preVehicleStrMoto=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS, "添加感知模型到地图中……preVehicleStrBus=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_BUS, "添加感知模型到地图中……preVehicleStrBus=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK, "添加感知模型到地图中……preVehicleStrTruck=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_TRUCK, "添加感知模型到地图中……preVehicleStrTruck=");
});
}
/**

View File

@@ -8,6 +8,7 @@ import android.os.Build;
import android.os.Environment;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import androidx.annotation.MainThread;
@@ -121,6 +122,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
// 单独的语音播放
private boolean mHasAuth;
private int retryCount;
private volatile boolean isAuthing = false;
private void initFlushStatus() {
if (!mHasFlush) {
@@ -130,8 +132,10 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
@Override
public void initTts(String sn) {
if (!mHasAuth && sn != null && !sn.isEmpty()) {
if (!mHasAuth && sn != null && !sn.isEmpty() && !isAuthing) {
initTtsConfig(sn);
} else {
Log.d(TAG, "不满足Tts初始化条件!" + mHasAuth + "," + sn + "," + isAuthing);
}
}
@@ -163,6 +167,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
}
private void initDUILiteSDK(AuthConfig.Builder onlineBuilder, EchoConfig echoConfig) {
isAuthing = true;
DUILiteSDK.init(mContext, new DUILiteConfig.Builder()
.setApiKey("113cc31f6385113cc31f6385618c86f5")
.setProductId("278586132")
@@ -177,6 +182,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
@Override
public void success() {
CallerLogger.INSTANCE.d(TAG, "授权成功");
isAuthing = false;
ThreadUtils.runOnUiThread(() -> {
mHasAuth = true;
initTtsEngine();
@@ -186,6 +192,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
@Override
public void error(String errorCode, final String errorInfo) {
CallerLogger.INSTANCE.e(TAG, "error code : " + errorCode + " , error info :" + errorInfo);
isAuthing = false;
if (retryCount++ < 3) {
initDUILiteSDK(onlineBuilder, echoConfig);
}