[dev_arch_opt_3.0] 联调完成obu升级功能
This commit is contained in:
@@ -93,7 +93,7 @@ ext {
|
||||
|
||||
// obu sdk
|
||||
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
|
||||
mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta1',
|
||||
mogoobu : 'com.mogo.support.obu:mogo-obu:1.1.0_beta3',
|
||||
|
||||
// google
|
||||
googlezxing : "com.google.zxing:core:3.3.3",
|
||||
|
||||
@@ -44,7 +44,7 @@ MogoObuManager.getInstance().init(Context context);
|
||||
```
|
||||
## 连接
|
||||
```java
|
||||
//默认192.168.1.199
|
||||
//默认
|
||||
MogoObuManager.getInstance().connect();
|
||||
//自定义 IP
|
||||
MogoObuManager.getInstance().connect(String ip);
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.mogo.eagle.core.data.constants.MoGoConfig
|
||||
import com.mogo.eagle.core.data.constants.MogoServicePaths
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.obu.IMoGoObuProvider
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
|
||||
@@ -18,7 +19,6 @@ import com.mogo.eagle.core.utilcode.util.CommonUtils
|
||||
class MoGoObuProvider : IMoGoObuProvider {
|
||||
private val TAG = "MoGoObuProvider"
|
||||
private var mContext: Context? = null
|
||||
private val taxiObuIp = "192.168.1.199" //obu的taxi和bus的ip已经全部统一成1网段ip
|
||||
|
||||
override val functionName: String
|
||||
get() = TAG
|
||||
@@ -36,7 +36,7 @@ class MoGoObuProvider : IMoGoObuProvider {
|
||||
mContext = context
|
||||
mContext?.let {
|
||||
val ipAddress =
|
||||
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, taxiObuIp)
|
||||
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, MogoObuConst.OBU_DEFAULT_IP)
|
||||
//mogo obu
|
||||
MogoPrivateObuNewManager.INSTANCE.connectObu(
|
||||
it,
|
||||
@@ -44,6 +44,9 @@ class MoGoObuProvider : IMoGoObuProvider {
|
||||
CommonUtils.getIpAddressString()
|
||||
)
|
||||
}
|
||||
|
||||
//监听obu版本数据
|
||||
MogoPrivateObuNewManager.INSTANCE.readSystemConfig()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,4 +77,8 @@ class MoGoObuProvider : IMoGoObuProvider {
|
||||
override fun setObuLog(isChecked: Boolean) {
|
||||
MogoPrivateObuNewManager.INSTANCE.setObuLog(isChecked)
|
||||
}
|
||||
|
||||
override fun uploadObuPack(filePathArray: Array<String>) {
|
||||
MogoPrivateObuNewManager.INSTANCE.uploadObuPack(filePathArray)
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,16 @@
|
||||
package com.mogo.eagle.core.function.datacenter.obu
|
||||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.enums.*
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
|
||||
import com.mogo.eagle.core.function.api.map.angle.Default
|
||||
import com.mogo.eagle.core.function.api.map.angle.TooClose
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager
|
||||
@@ -18,8 +21,10 @@ import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager
|
||||
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
|
||||
import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtilsNew
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.Config
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU
|
||||
import com.mogo.eagle.core.utilcode.util.FileUtils
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
|
||||
import com.mogo.support.obu.ObuBase
|
||||
import com.mogo.support.obu.ObuScene
|
||||
@@ -31,6 +36,8 @@ import com.mogo.support.obu.model.*
|
||||
import com.mogo.support.obu.option.MogoObuCom
|
||||
import com.mogo.support.obu.option.MogoObuLog
|
||||
import com.mogo.support.obu.option.MogoObuOptions
|
||||
import com.mogo.support.obu.upgrade.ObuSoftwareUpgradeStatus
|
||||
import com.mogo.support.obu.upgrade.OnUpgradeListener
|
||||
import com.zhidao.support.obu.ObuManager
|
||||
import com.zhidao.support.obu.OnObuListener
|
||||
import mogo.telematics.pad.MessagePad
|
||||
@@ -42,7 +49,7 @@ import kotlin.math.roundToInt
|
||||
* @since 2021/8/23
|
||||
* @description 自研OBU 管理
|
||||
*/
|
||||
class MogoPrivateObuNewManager private constructor() {
|
||||
class MogoPrivateObuNewManager private constructor() : OnUpgradeListener {
|
||||
companion object {
|
||||
val INSTANCE: MogoPrivateObuNewManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
|
||||
MogoPrivateObuNewManager()
|
||||
@@ -50,9 +57,12 @@ class MogoPrivateObuNewManager private constructor() {
|
||||
}
|
||||
|
||||
private var mObuStatusInfo = CallerObuConnectListenerManager.getObuStatusInfo()
|
||||
private var mContext: Context? = null
|
||||
var mVersionName: String? = null
|
||||
|
||||
fun connectObu(context: Context, obuIpAddress: String, padIpAddress: String) {
|
||||
ObuManager.getInstance().registerObuListener(mogoObuListener)
|
||||
mContext = context
|
||||
val com = MogoObuCom.newBuilder()
|
||||
.setLocalIp(padIpAddress)
|
||||
.setComType(MogoObuComType.UDP)
|
||||
@@ -82,6 +92,57 @@ class MogoPrivateObuNewManager private constructor() {
|
||||
ObuManager.getInstance().connect(options)
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传obu文件的状态, 升级成功,需要删除obu的文件和解压文件夹
|
||||
*/
|
||||
override fun onUpgradeStatus(status: ObuSoftwareUpgradeStatus?, t: Throwable?) {
|
||||
CallerLogger.d("$M_OBU${MogoObuConst.TAG_UPGRADE_OBU}", "onUpgradeStatus status = $status ")
|
||||
//上传完成就相当于成功了,立即升级,比上电升级,只是多了一个重启
|
||||
if (status == ObuSoftwareUpgradeStatus.UPLOAD_FINISH|| status == ObuSoftwareUpgradeStatus.EXEC_UPGRADE_PROGRAM_FINISH
|
||||
|| status == ObuSoftwareUpgradeStatus.CONNECTION_FAILED|| status == ObuSoftwareUpgradeStatus.AUTHENTICATION_FAILED
|
||||
|| status == ObuSoftwareUpgradeStatus.CHANNEL_ABNORMITY|| status == ObuSoftwareUpgradeStatus.UPGRADE_PACKAGE_ERROR
|
||||
|| status == ObuSoftwareUpgradeStatus.UPGRADE_PACKAGE_CHECK_FAILED || status == ObuSoftwareUpgradeStatus.PACKAGE_UPLOAD_FAILED
|
||||
|| status == ObuSoftwareUpgradeStatus.EXEC_UPGRADE_PROGRAM_FAILED || status == ObuSoftwareUpgradeStatus.UNKNOWN) {
|
||||
|
||||
UiThreadHandler.post {
|
||||
var isDeleteSuccess = FileUtils.delete(Config.downLoadObuPath)
|
||||
var isDeleteUnzipSuccess = FileUtils.delete(Config.downLoadUnzipObuPath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 当前的obu版本
|
||||
*/
|
||||
override fun onCurrentVersion(version: MogoObuSystemBConfigData) {
|
||||
CallerLogger.d("$M_OBU${MogoObuConst.TAG_UPGRADE_OBU}", "onCurrentVersion version = ${version.version}")
|
||||
if (!version.version.isNullOrEmpty()) {
|
||||
mVersionName = version.version
|
||||
CallerDevaToolsManager.queryObuUpgrade(version.version)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 监听obu
|
||||
*/
|
||||
fun readSystemConfig() {
|
||||
ObuManager.getInstance().readSystemBConfig(mContext, MogoObuConst.OBU_DEFAULT_IP, this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 传递obu升级包给硬件
|
||||
* @param upgradePackage 升级包文件绝对路径 只能包含 升级包MD5文件和升级包文件
|
||||
* @param isUpgradeNow 是否立即升级
|
||||
* false:OBU设备下次上电时执行升级程序
|
||||
* ture: OBU设备立即执行升级程序 TODO 警告:执行立即升级时请确保车辆是静止状态。车辆在运行过程中升级设备可能会影响驾驶,严重时可能造成安全隐患!!!
|
||||
* @param listener 升级回调
|
||||
* @return 是否调用成功
|
||||
*/
|
||||
fun uploadObuPack(filePathArray: Array<String>) {
|
||||
CallerLogger.d("$M_OBU${MogoObuConst.TAG_UPGRADE_OBU}", " uploadObuPack filePathArray = $filePathArray")
|
||||
ObuManager.getInstance().uploadUpgradePackage(MogoObuConst.OBU_DEFAULT_IP, filePathArray,true,this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 断开新obu
|
||||
*/
|
||||
@@ -100,6 +161,9 @@ class MogoPrivateObuNewManager private constructor() {
|
||||
return ObuManager.getInstance().connectStatus == MogoObuConstants.CONNECT_STATUS.CONNECTED
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置obu sdk日志的输出
|
||||
*/
|
||||
fun setObuLog(isChecked: Boolean) {
|
||||
ObuManager.getInstance().setEnableLog(isChecked)
|
||||
val builder: MogoObuLog.Builder =
|
||||
@@ -110,6 +174,9 @@ class MogoPrivateObuNewManager private constructor() {
|
||||
ObuManager.getInstance().logConfig(builder.build())
|
||||
}
|
||||
|
||||
/**
|
||||
* obu 回调监听
|
||||
*/
|
||||
private val mogoObuListener: OnObuListener = object : OnObuListener {
|
||||
/**
|
||||
* 连接状态的改变
|
||||
|
||||
@@ -239,4 +239,8 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
}
|
||||
|
||||
override fun apmEnvProvider(): IApmEnvProvider = apmEnvProvider
|
||||
|
||||
override fun queryObuUpgrade(obuVersionName: String) {
|
||||
bindingCarManager.queryObuUpgrade(obuVersionName)
|
||||
}
|
||||
}
|
||||
@@ -9,11 +9,14 @@ import com.mogo.eagle.core.data.app.AppConfigInfo.role
|
||||
import com.mogo.eagle.core.data.bindingcar.ModifyBindingcarInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isDriver
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
|
||||
import com.zhjt.mogo_core_function_devatools.upgrade.IPCUpgradeManager.Companion.ipcUpgradeManager
|
||||
@@ -59,9 +62,6 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
if (carConfigResp != null && !TextUtils.isEmpty(carConfigResp.macAddress)) {
|
||||
Log.d("Upgrade", "MoGoHandAdasMsgManager address = " + carConfigResp.macAddress)
|
||||
getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
|
||||
|
||||
//obu的升级,只需要司机屏连接
|
||||
queryObuUpgrade(carConfigResp.macAddress)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,14 +164,16 @@ class BindingCarManager : IMoGoAutopilotCarConfigListener {
|
||||
fun queryAppUpgrade() {
|
||||
UpgradeAppNetWorkManager.getInstance()
|
||||
.getAppUpgradeInfo(mContext, mAddress, role.toString() + "")
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 司机屏 处理obu升级即可,乘客屏不需要处理
|
||||
*
|
||||
* obu的升级,只需要司机屏连接
|
||||
*/
|
||||
private fun queryObuUpgrade(macAddress: String) {
|
||||
ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, macAddress)
|
||||
fun queryObuUpgrade(obuVersionName: String) {
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}","queryObuUpgrade isConnected = ${CallerObuApiManager.isConnected()} --- mAddress = $mAddress")
|
||||
ObuUpgradeAppNetWorkManager.getInstance().getObuUpgradeInfo(mContext, mAddress, obuVersionName)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,17 +3,17 @@ package com.zhjt.mogo_core_function_devatools.upgrade;
|
||||
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BINDING;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||
import com.mogo.commons.constants.HostConst;
|
||||
import com.mogo.eagle.core.data.bindingcar.UpgradeAppInfo;
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst;
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
|
||||
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
|
||||
import com.mogo.eagle.core.network.utils.GsonUtil;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
@@ -50,15 +50,15 @@ public class ObuUpgradeAppNetWorkManager {
|
||||
|
||||
/**
|
||||
* 获取obu升级信息,obu升级服务端使用app升级接口,根据screenType区分类型
|
||||
* mac :工控机mac地址
|
||||
* mac :工控机mac地址,
|
||||
* screenType : 类型
|
||||
*/
|
||||
public void getObuUpgradeInfo(Context context, String mac) {
|
||||
public void getObuUpgradeInfo(Context context, String mac, String versionName) {
|
||||
// String sn = "X20202203105S688HZ";
|
||||
// String mac = "48:b0:2d:3a:bc:78";
|
||||
// String mac1 = "48:b0:2d:4d:33:40";
|
||||
|
||||
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||
String obuVersionName = String.valueOf(AppUtils.getAppVersionCode()); // TODO 获取obu的版本号, string和int 服务端处理
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac + "---sn = " + sn + "---obuVersionName =" + obuVersionName);
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo mac = " + mac + " ---sn = " + sn + " ---versionName = " + versionName);
|
||||
UpgradeAppRequest request = new UpgradeAppRequest(sn, mac, "7");
|
||||
RequestBody requestBody = RequestBody.create(MediaType.get("application/json;charset=UTF-8"), GsonUtil.jsonFromObject(request));
|
||||
mUpgradeApiService.getUpgradeInfo(requestBody)
|
||||
@@ -72,10 +72,9 @@ public class ObuUpgradeAppNetWorkManager {
|
||||
@Override
|
||||
public void onNext(@NonNull UpgradeAppInfo info) {
|
||||
if (info != null && info.result != null) {
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo url = " + info.result.getAppUrl() + "----name = " + info.result.getVersionName() + "--obuVersionName =" + obuVersionName + "--info.result = " + info.result);
|
||||
if (!String.valueOf(info.result.getVersionName()).equals(obuVersionName)) {
|
||||
//下载 TAG和文件名 TODO
|
||||
CallerDevaToolsManager.INSTANCE.downLoadPackage("OBU", info.result.getAppUrl());
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo appFileName = " + info.result.getAppFileName() + " ----url = " + info.result.getAppUrl() + " ----name = " + info.result.getVersionName() + " --obuVersionName =" + versionName + " ---info.result = " + info.result);
|
||||
if (!String.valueOf(info.result.getVersionName()).equals(versionName)) { //判断是否下载,当文件名称不一致的时候,就下载
|
||||
CallerDevaToolsManager.INSTANCE.downLoadPackage(info.result.getAppFileName(), info.result.getAppUrl());
|
||||
}
|
||||
} else {
|
||||
CallerLogger.INSTANCE.d(M_BINDING + TAG, "getObuUpgradeInfo onNext info == null");
|
||||
@@ -84,7 +83,7 @@ public class ObuUpgradeAppNetWorkManager {
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
CallerLogger.INSTANCE.e(M_BINDING + TAG, "getObuUpgradeInfo e = " + e);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -2,18 +2,23 @@ package com.zhjt.mogo_core_function_devatools.upgrade
|
||||
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.core.app.NotificationCompat
|
||||
import com.elegant.utils.UiThreadHandler
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.devatools.IMogoDevaToolsUpgradeListener
|
||||
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsUpgradeListenerManager
|
||||
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.updateStatusBarDownloadView
|
||||
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.Config
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.bean.ThreadBean
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.callback.IDownload
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.utils.DownloadUtils
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.FileUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ZipUtils
|
||||
import java.io.IOException
|
||||
|
||||
@@ -29,12 +34,18 @@ class UpgradeManager : IDownload {
|
||||
}
|
||||
|
||||
private var map: Map<String, String>? = null
|
||||
private var mDownloadFileName: String? = null
|
||||
|
||||
fun downLoadPackage(context: Context, downloadKey: String,downloadUrl: String) {
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "UpgradeManager downLoadPackage = " + downloadUrl?.contains(".zip") + "----downloadKey = $downloadKey ---downloadUrl = $downloadUrl")
|
||||
if (downloadUrl?.contains(".zip")) {
|
||||
mDownloadFileName = downloadKey
|
||||
}
|
||||
|
||||
DownloadUtils.downLoad(
|
||||
context,
|
||||
downloadUrl,
|
||||
Config.downLoadPath,
|
||||
if (downloadUrl?.contains(".zip")) Config.downLoadObuPath else Config.downLoadPath,
|
||||
downloadKey,
|
||||
5,
|
||||
this
|
||||
@@ -81,7 +92,7 @@ class UpgradeManager : IDownload {
|
||||
}
|
||||
|
||||
override fun onFinished(downloadUrl: String?, threadBean: ThreadBean?) {
|
||||
if (downloadUrl != null) {
|
||||
if (downloadUrl != null) { //TODO 需要判断是否是apk文件
|
||||
AppUtils.installApp(Config.downLoadPath + downloadUrl.substring(downloadUrl.lastIndexOf("/") + 1))
|
||||
}
|
||||
if (downloadUrl != null) {
|
||||
@@ -119,7 +130,7 @@ class UpgradeManager : IDownload {
|
||||
}
|
||||
|
||||
/**
|
||||
* 鹰眼app下载监听
|
||||
* 鹰眼app下载监听 liyz
|
||||
*/
|
||||
fun updateUpgradeProgress(context: Context) {
|
||||
val builder = NotificationCompat.Builder(context)
|
||||
@@ -162,23 +173,38 @@ class UpgradeManager : IDownload {
|
||||
override fun onStart(url: String?) {}
|
||||
override fun onPause(url: String?) {}
|
||||
override fun onProgress(url: String?, length: Int) {
|
||||
|
||||
}
|
||||
|
||||
override fun onFinished(url: String?) {
|
||||
//下载完成,解压文件 TODO
|
||||
//下载完成,解压文件
|
||||
try {
|
||||
val files = ZipUtils.unzipFile("", "")
|
||||
//传给obu升级
|
||||
|
||||
val files = ZipUtils.unzipFile(Config.downLoadObuPath + mDownloadFileName, Config.downLoadUnzipObuPath)
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", " onFinished file = ${Config.downLoadObuPath + mDownloadFileName} -----files = $files ")
|
||||
//1传给obu升级,升级成功,2需要删除相应文件夹
|
||||
var md5Path = ""
|
||||
var tarPath = ""
|
||||
for (f in files) {
|
||||
if (f.path.contains(".md5")) {
|
||||
md5Path = f.path
|
||||
}
|
||||
if (f.path.contains(".gz")) {
|
||||
tarPath = f.path
|
||||
}
|
||||
}
|
||||
CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "updateObuUpgradeStatus ---md5Path = $md5Path -----tarPath = $tarPath ")
|
||||
CallerObuApiManager.uploadObuPack(arrayOf(md5Path, tarPath))
|
||||
} catch (e: IOException) {
|
||||
//解压失败
|
||||
|
||||
com.mogo.eagle.core.utilcode.util.UiThreadHandler.post {
|
||||
var isDeleteSuccess = FileUtils.delete(Config.downLoadObuPath)
|
||||
var isDeleteUnzipSuccess = FileUtils.delete(Config.downLoadUnzipObuPath)
|
||||
}
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(url: String?, errorMsg: String?) {}
|
||||
override fun onError(url: String?, errorMsg: String?) {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ import com.mogo.eagle.core.data.deva.scene.SceneModule
|
||||
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
|
||||
import com.mogo.eagle.core.data.gnss.AccelerationEntity
|
||||
import com.mogo.eagle.core.data.map.MogoLocation
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.data.obu.ObuStatusInfo
|
||||
import com.mogo.eagle.core.data.report.ReportEntity
|
||||
import com.mogo.eagle.core.function.api.autopilot.*
|
||||
@@ -558,7 +559,7 @@ internal class DebugSettingView @JvmOverloads constructor(
|
||||
|
||||
// 初始化OBU IP信息
|
||||
val ipAddress =
|
||||
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, "192.168.1.199")
|
||||
SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, MogoObuConst.OBU_DEFAULT_IP)
|
||||
|
||||
etObuIP.setText(ipAddress)
|
||||
etObuIP.text?.let { etObuIP.setSelection(it.length) }
|
||||
|
||||
@@ -8,6 +8,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.config.HmiBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig
|
||||
import com.mogo.eagle.core.data.obu.MogoObuConst
|
||||
import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener
|
||||
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
@@ -182,7 +183,7 @@ internal class SOPSettingView @JvmOverloads constructor(
|
||||
tbObu.isChecked = CallerObuApiManager.isConnected()
|
||||
tbObu.setOnCheckedChangeListener { _, isChecked ->
|
||||
if (isChecked) {
|
||||
CallerObuApiManager.resetObuIpAddress("192.168.1.199")
|
||||
CallerObuApiManager.resetObuIpAddress(MogoObuConst.OBU_DEFAULT_IP)
|
||||
} else {
|
||||
//断开链接
|
||||
CallerObuApiManager.disConnectObu()
|
||||
|
||||
@@ -17,6 +17,7 @@ public class AppInfo implements Serializable {
|
||||
private String installType; // 升级类型 1:提示升级 2:静默升级 3:强制升级
|
||||
private String beginTime;
|
||||
private String endTime;
|
||||
private String appFileName;
|
||||
|
||||
public String getAppUrl() {
|
||||
return appUrl;
|
||||
@@ -90,6 +91,14 @@ public class AppInfo implements Serializable {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getAppFileName() {
|
||||
return appFileName;
|
||||
}
|
||||
|
||||
public void setAppFileName(String appFileName) {
|
||||
this.appFileName = appFileName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AppInfo{" +
|
||||
@@ -102,6 +111,7 @@ public class AppInfo implements Serializable {
|
||||
", installType='" + installType + '\'' +
|
||||
", beginTime='" + beginTime + '\'' +
|
||||
", endTime='" + endTime + '\'' +
|
||||
", appFileName='" + appFileName + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.mogo.eagle.core.function.datacenter.obu;
|
||||
package com.mogo.eagle.core.data.obu;
|
||||
|
||||
/**
|
||||
* author : lxiiaopeng
|
||||
@@ -10,10 +10,20 @@ public class MogoObuConst {
|
||||
/**
|
||||
* 自研obu的tag
|
||||
*/
|
||||
public static final String TAG_MOGO_OBU = "MogoObu";
|
||||
|
||||
public static final String TAG_MOGO_NEW_OBU = "MogoNewObu";
|
||||
|
||||
/**
|
||||
* 自研obu 默认ip obu的taxi和bus的ip已经全部统一成1网段ip
|
||||
*/
|
||||
public static String OBU_DEFAULT_IP = "192.168.1.199";
|
||||
// public static String OBU_DEFAULT_IP = "192.168.0.53"; //obu室内环境
|
||||
|
||||
/**
|
||||
* obu 升级tag
|
||||
*/
|
||||
public static final String TAG_UPGRADE_OBU = "TagUpgradeObu";
|
||||
|
||||
|
||||
// OBU 场景测试
|
||||
// 场景类型
|
||||
public static String BROADCAST_OBU_TYPE_EXTRA_KEY = "obuType";
|
||||
@@ -172,6 +172,11 @@ interface IDevaToolsProvider : IProvider {
|
||||
*/
|
||||
fun queryAppUpgrade()
|
||||
|
||||
/**
|
||||
* 查询obu是否有更新
|
||||
*/
|
||||
fun queryObuUpgrade(obuVersionName: String)
|
||||
|
||||
fun getEnvConfig(): EnvConfig?
|
||||
|
||||
fun getEnvCityName():String
|
||||
|
||||
@@ -16,4 +16,6 @@ interface IMoGoObuProvider : IMoGoFunctionServerProvider {
|
||||
fun isConnected(): Boolean
|
||||
|
||||
fun setObuLog(isChecked: Boolean)
|
||||
|
||||
fun uploadObuPack(filePathArray: Array<String>)
|
||||
}
|
||||
@@ -237,4 +237,8 @@ object CallerDevaToolsManager {
|
||||
}
|
||||
|
||||
fun apmEnvProvider(): IApmEnvProvider? = devaToolsProviderApi?.apmEnvProvider()
|
||||
|
||||
fun queryObuUpgrade(obuVersionName: String) {
|
||||
devaToolsProviderApi?.queryObuUpgrade(obuVersionName)
|
||||
}
|
||||
}
|
||||
@@ -47,4 +47,11 @@ object CallerObuApiManager {
|
||||
providerApi.setObuLog(isSet)
|
||||
}
|
||||
|
||||
/**
|
||||
* 升级obu硬件
|
||||
*/
|
||||
fun uploadObuPack(filePathArray: Array<String>) {
|
||||
providerApi.uploadObuPack(filePathArray)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -16,5 +16,8 @@ public class Config {
|
||||
public final static String downLoadObuPath = Environment.getExternalStorageDirectory().getAbsolutePath()
|
||||
+ "/obu/";
|
||||
|
||||
public final static String downLoadUnzipObuPath = Environment.getExternalStorageDirectory().getAbsolutePath()
|
||||
+ "/obuunzip/";
|
||||
|
||||
public final static String DOWN_LOAD_TAG = "Package-DownLoad";
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class DownloadThread extends Thread {
|
||||
int start = threadBean.getStart() + threadBean.getFinished();
|
||||
connection.setRequestProperty("Range","bytes="+start+"-"+threadBean.getEnd());
|
||||
//设置写入位置
|
||||
File file = new File(Config.downLoadPath,fileBean.getFileName());
|
||||
File file = new File(fileBean.getFileName().contains(".zip") ? Config.downLoadObuPath : Config.downLoadPath,fileBean.getFileName());
|
||||
raf = new RandomAccessFile(file,"rwd");
|
||||
raf.seek(start);
|
||||
//开始下载
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.mogo.eagle.core.utilcode.breakpoint.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.bean.FileBean;
|
||||
import com.mogo.eagle.core.utilcode.breakpoint.callback.IDownload;
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.zhidao.support.obu;
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.support.obu.MogoObuManager;
|
||||
import com.mogo.support.obu.ObuBase;
|
||||
@@ -16,6 +17,7 @@ import com.mogo.support.obu.model.MogoObuRsiWarningData;
|
||||
import com.mogo.support.obu.model.MogoObuRsmWarningData;
|
||||
import com.mogo.support.obu.model.MogoObuRvWarningData;
|
||||
import com.mogo.support.obu.model.MogoObuSpatWarningData;
|
||||
import com.mogo.support.obu.model.MogoObuSystemBConfigData;
|
||||
import com.mogo.support.obu.model.advance.AccFourAxes;
|
||||
import com.mogo.support.obu.model.advance.DateTime;
|
||||
import com.mogo.support.obu.model.advance.NodeId;
|
||||
@@ -106,13 +108,13 @@ public class ObuManager {
|
||||
|
||||
/**
|
||||
* 获取当前OBU软件版本
|
||||
* 需主动调用获取{@link MogoObuManager#getObuVersion(Context, String, OnUpgradeListener)}
|
||||
*
|
||||
* @return 版本 null表示 无法连接OBU;无法获取版本;
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public String getObuVersion() {
|
||||
return MogoObuManager.getInstance().getObuVersion();
|
||||
@Nullable
|
||||
public MogoObuSystemBConfigData getObuSystemBConfig() {
|
||||
return MogoObuManager.getInstance().getObuSystemBConfig();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -269,64 +271,43 @@ public class ObuManager {
|
||||
|
||||
|
||||
/**
|
||||
* 检查更新
|
||||
* 获取OBu配置信息
|
||||
*
|
||||
* @param obuIp OBU IP
|
||||
* @param listener 升级回调
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public boolean checkObuUpgrade(@NonNull Context context, @NonNull String obuIp, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().checkObuUpgrade(context, obuIp, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查更新
|
||||
*
|
||||
* @param context 上下文
|
||||
* @param obuIp OBU IP
|
||||
* @param isUpgradeNow 是否立即升级
|
||||
* false:OBU设备下次上电时执行升级程序
|
||||
* ture: OBU设备立即执行升级程序 TODO 警告:执行立即升级时请确保车辆是静止状态。车辆在运行过程中升级设备可能会影响驾驶,严重时可能造成安全隐患!!!
|
||||
* @param listener 升级回调
|
||||
* @return 是否调用成功
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public boolean checkObuUpgrade(@NonNull Context context, @NonNull String obuIp, boolean isUpgradeNow, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().checkObuUpgrade(context, obuIp, isUpgradeNow, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前连接OBU的版本号
|
||||
* 如果调用 {@link MogoObuManager#checkObuUpgrade(Context, String, OnUpgradeListener)}方法可以不用调用此方法,检查更新会获取版本号
|
||||
*
|
||||
* @param context 上下文
|
||||
* @param obuIp OBU IP
|
||||
* @param listener 升级回调
|
||||
* @return 是否调用成功
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public boolean getObuVersion(@NonNull Context context, @NonNull String obuIp, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().getObuVersion(context, obuIp, listener);
|
||||
public boolean readSystemBConfig(Context context, @NonNull String obuIp, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().readSystemBConfig(context, obuIp, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 传入升级包版本
|
||||
* 上传升级包到OBU 非立即执行升级程序
|
||||
*
|
||||
* @param newVersion 升级包版本
|
||||
* @param obuIp OBU IP
|
||||
* @param upgradePackage 升级包文件绝对路径 只能包含 升级包MD5文件和升级包文件
|
||||
* @param listener 升级回调
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public void setObuUpgradePackageVersion(@NonNull String newVersion) {
|
||||
MogoObuManager.getInstance().setObuUpgradePackageVersion(newVersion);
|
||||
public boolean uploadUpgradePackage(@NonNull String obuIp, @NonNull String[] upgradePackage, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().uploadUpgradePackage(obuIp, upgradePackage, false, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* 传入升级包
|
||||
* 上传升级包到OBU
|
||||
*
|
||||
* @param newUpgradePackage 升级包文件绝对路径 只能包含 升级包MD5文件和升级包文件
|
||||
* @param obuIp OBU IP
|
||||
* @param upgradePackage 升级包文件绝对路径 只能包含 升级包MD5文件和升级包文件
|
||||
* @param isUpgradeNow 是否立即升级
|
||||
* false:OBU设备下次上电时执行升级程序
|
||||
* ture: OBU设备立即执行升级程序 TODO 警告:执行立即升级时请确保车辆是静止状态。车辆在运行过程中升级设备可能会影响驾驶,严重时可能造成安全隐患!!!
|
||||
* @param listener 升级回调
|
||||
* @return 是否调用成功
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public void setObuUpgradePackage(@NonNull String[] newUpgradePackage) {
|
||||
MogoObuManager.getInstance().setObuUpgradePackage(newUpgradePackage);
|
||||
public boolean uploadUpgradePackage(@NonNull String obuIp, @NonNull String[] upgradePackage, boolean isUpgradeNow, OnUpgradeListener listener) {
|
||||
return MogoObuManager.getInstance().uploadUpgradePackage(obuIp, upgradePackage, isUpgradeNow, listener);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -334,10 +315,11 @@ public class ObuManager {
|
||||
*
|
||||
* @since 1.1.0
|
||||
*/
|
||||
public void stopObuUpgrade() {
|
||||
MogoObuManager.getInstance().stopObuUpgrade();
|
||||
public void stopProcess() {
|
||||
MogoObuManager.getInstance().stopProcess();
|
||||
}
|
||||
|
||||
|
||||
private final OnMogoObuListener mogoObuListener = new OnMogoObuListener() {
|
||||
@Override
|
||||
public void onConnectStatus(int connectStatus) {
|
||||
|
||||
Reference in New Issue
Block a user