[8.1.0_new_ota]OTA 2.0 版本
This commit is contained in:
@@ -1556,6 +1556,14 @@ class MoGoAutopilotControlProvider :
|
||||
return AdasManager.getInstance().sendSsmFuncOtaStatusQuery(token)>-1
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA2.0查询
|
||||
* @param queryStr {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"} JSON
|
||||
*/
|
||||
override fun sendOtaPadMsgQuery(queryStr: String): Boolean {
|
||||
return AdasManager.getInstance().sendOtaPadMsgQuery(queryStr) > -1
|
||||
}
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
|
||||
@@ -622,6 +622,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
|
||||
timestamp: Long,
|
||||
status: SsmInfo.PureStr?
|
||||
) {
|
||||
if(status != null){
|
||||
CallerOTAManager.invokeOtaPureStr(token,timestamp,status)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,4 +28,23 @@ object OTAUpgradeConfig {
|
||||
//已经提示过升级成功的列表
|
||||
@JvmField
|
||||
var upgradeFinish: ArrayList<String> = ArrayList()
|
||||
|
||||
|
||||
|
||||
var token: String = ""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -394,6 +394,65 @@ object OTAUpgradeManager: IMoGoAutopilotStatusListener, IDataCenterBizListener,
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA 2.0 新接口
|
||||
* @param token PadSsmMsg唯一消息ID
|
||||
* @param timestamp 消息发送时间 单位:毫秒
|
||||
* @param status OTA 2.0 数据
|
||||
*/
|
||||
override fun onOtaPureStr(token: Long, timestamp: Long, status: SsmInfo.PureStr) {
|
||||
super.onOtaPureStr(token, timestamp, status)
|
||||
Log.i(TAG, "onOtaPureStr token=$token")
|
||||
Log.i(TAG, "onOtaPureStr timestamp=$timestamp")
|
||||
Log.i(TAG, "onOtaPureStr status=$status")
|
||||
Log.i(TAG, "onOtaPureStr status.data=${status.data}")
|
||||
val jsonObject = JSONObject(status.data)
|
||||
val cmd = jsonObject.optString("cmd")
|
||||
val otaToken = jsonObject.optString("token")
|
||||
val otaStatus = jsonObject.optString("status")
|
||||
val upgradeReason = jsonObject.optString("upgrade_reason")
|
||||
val isDelay = jsonObject.optBoolean("is_delay")
|
||||
val isCancel = jsonObject.optBoolean("is_cancel")
|
||||
|
||||
Log.i(TAG, "cmd=$cmd")
|
||||
Log.i(TAG, "otaToken=$otaToken")
|
||||
Log.i(TAG, "otaStatus=$otaStatus")
|
||||
Log.i(TAG, "upgradeReason=$upgradeReason")
|
||||
Log.i(TAG, "isDelay=$isDelay")
|
||||
Log.i(TAG, "isCancel=$isCancel")
|
||||
|
||||
val products = jsonObject.optString("products")
|
||||
val productsArray = JSONArray(products)
|
||||
if(productsArray.length() > 0){
|
||||
for(index in 0 until productsArray.length()){
|
||||
val productInfo = productsArray[index] as JSONObject
|
||||
val productStatus = productInfo.optString("status")
|
||||
val failReason = productInfo.optString("fail_reason")
|
||||
val speed = productInfo.optDouble("speed")
|
||||
val leftTime = productInfo.optInt("left_time")
|
||||
val name = productInfo.optString("name")
|
||||
val curSize = productInfo.optInt("cur_size")
|
||||
val totalSize = productInfo.optInt("total_size")
|
||||
|
||||
Log.i(TAG, "productStatus=$productStatus")
|
||||
Log.i(TAG, "failReason=$failReason")
|
||||
Log.i(TAG, "speed=$speed")
|
||||
Log.i(TAG, "leftTime=$leftTime")
|
||||
Log.i(TAG, "name=$name")
|
||||
Log.i(TAG, "curSize=$curSize")
|
||||
Log.i(TAG, "totalSize=$totalSize")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(otaToken.isNotEmpty()){
|
||||
CallerHmiManager.showOTAUpgradeDialog(true,upgradeReason)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private val pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+")
|
||||
|
||||
/**
|
||||
|
||||
@@ -154,14 +154,24 @@ class CarInfoTabView @JvmOverloads constructor(
|
||||
"${SceneConstant.M_HMI}${TAG}",
|
||||
"ad version view clicked"
|
||||
)
|
||||
if(OTAUpgradeConfig.supportOTA){
|
||||
//查询OTA状态
|
||||
OTAUpgradeConfig.isQuery = true
|
||||
OTAUpgradeConfig.promptedUpgrade.remove(OTAUpgradeConfig.otaToken)
|
||||
CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken)
|
||||
}else{
|
||||
ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级")
|
||||
}
|
||||
// if(OTAUpgradeConfig.supportOTA){
|
||||
// //查询OTA状态
|
||||
// OTAUpgradeConfig.isQuery = true
|
||||
// OTAUpgradeConfig.promptedUpgrade.remove(OTAUpgradeConfig.otaToken)
|
||||
// CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken)
|
||||
// }else{
|
||||
// ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级")
|
||||
// }
|
||||
|
||||
|
||||
//查询OTA升级
|
||||
val query: JSONObject = JSONObject()
|
||||
query.put("cmd","PAD_QUERY_UPGRADE_STATUS")
|
||||
query.put("token",OTAUpgradeConfig.token)
|
||||
Log.i("xuxinchao",query.toString())
|
||||
CallerAutoPilotControlManager.sendOtaPadMsgQuery(query.toString())
|
||||
|
||||
|
||||
}
|
||||
tvHDMapVersion.text = tvHDMapVersion.text.toString() + DebugConfig.getMapVersion()
|
||||
//高精地图 检查更新
|
||||
|
||||
@@ -730,6 +730,12 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider {
|
||||
*/
|
||||
fun sendSsmFuncOtaStatusQuery(token: String): Boolean
|
||||
|
||||
/**
|
||||
* OTA2.0查询
|
||||
* @param queryStr {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"} JSON
|
||||
*/
|
||||
fun sendOtaPadMsgQuery(queryStr: String): Boolean
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
|
||||
@@ -34,4 +34,12 @@ interface IOTAListener {
|
||||
*/
|
||||
fun onOtaDownloadStatus(status: Boolean){}
|
||||
|
||||
/**
|
||||
* OTA 2.0 新接口
|
||||
* @param token PadSsmMsg唯一消息ID
|
||||
* @param timestamp 消息发送时间 单位:毫秒
|
||||
* @param status OTA 2.0 数据
|
||||
*/
|
||||
fun onOtaPureStr(token: Long,timestamp: Long,status: SsmInfo.PureStr){}
|
||||
|
||||
}
|
||||
@@ -1095,6 +1095,14 @@ object CallerAutoPilotControlManager {
|
||||
return providerApi?.sendSsmFuncOtaStatusQuery(token)?:false
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA2.0查询
|
||||
* @param queryStr {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"} JSON
|
||||
*/
|
||||
fun sendOtaPadMsgQuery(queryStr: String): Boolean{
|
||||
return providerApi?.sendOtaPadMsgQuery(queryStr)?:false
|
||||
}
|
||||
|
||||
/**
|
||||
* 人工接管时获取前方和后方摄像头数据
|
||||
* 一次请求域控回调次两次摄像头数据 根据{@link MessagePad.CaptureImgOnTakeOver#getUuid()}进行区分是否是哪次请求
|
||||
|
||||
@@ -56,4 +56,17 @@ object CallerOTAManager: CallerBase<IOTAListener>() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA 2.0 新接口
|
||||
* @param token PadSsmMsg唯一消息ID
|
||||
* @param timestamp 消息发送时间 单位:毫秒
|
||||
* @param status OTA 2.0 数据
|
||||
*/
|
||||
fun invokeOtaPureStr(token: Long,timestamp: Long,status: SsmInfo.PureStr){
|
||||
M_LISTENERS.forEach {
|
||||
val listener = it.value
|
||||
listener.onOtaPureStr(token, timestamp, status)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3100,6 +3100,21 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
return sendSsmFuncMsg(true, system_master.SsmInfo.MessageType.OTA_STATUS_QUERY, builder.build().toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询OTA2.0状态
|
||||
* @param queryStr 域控发送OTA升级请求中的 {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"}
|
||||
* @return 消息是否添加到WS消息发送队列,返回值为非0的正整数时表示下发消息的消息ID
|
||||
* * >=0:表示添加到WS发送消息队列
|
||||
* * =0:表示乘客屏模式添加到WS发送消息队列
|
||||
* * -1L:添加到WS发送消息队列失败
|
||||
*/
|
||||
@Override
|
||||
public long sendOtaPadMsgQuery(@Nullable String queryStr) {
|
||||
SsmInfo.PureStr.Builder builder = SsmInfo.PureStr.newBuilder();
|
||||
builder.setData(TextUtils.isEmpty(queryStr) ? "" : queryStr);
|
||||
return sendSsmFuncMsg(true,system_master.SsmInfo.MessageType.OTA_PAD_MSG,builder.build().toByteString());
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询冷启动状态
|
||||
*
|
||||
|
||||
@@ -1861,6 +1861,16 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
return mChannel == null ? -1L : mChannel.sendSsmFuncOtaStatusQuery(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* OTA2.0 请求命令下发
|
||||
* @param queryStr {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"} JSON
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public long sendOtaPadMsgQuery(@Nullable String queryStr) {
|
||||
return mChannel == null ? -1L : mChannel.sendOtaPadMsgQuery(queryStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询冷启动状态
|
||||
*
|
||||
|
||||
@@ -1348,6 +1348,12 @@ public interface IAdasNetCommApi {
|
||||
*/
|
||||
long sendSsmFuncOtaStatusQuery(@Nullable String token);
|
||||
|
||||
/**
|
||||
* OTA2.0查询
|
||||
* @param queryStr {"cmd":"PAD_QUERY_UPGRADE_STATUS","token":"123"} JSON
|
||||
*/
|
||||
long sendOtaPadMsgQuery(@Nullable String queryStr);
|
||||
|
||||
/**
|
||||
* 查询冷启动状态
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user