[6.2.0] overtake speed limit set

This commit is contained in:
zhongchao
2023-11-03 11:10:30 +08:00
parent 9b63085f98
commit 43e4112206
4 changed files with 31 additions and 51 deletions

View File

@@ -17,6 +17,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_AD
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_VEHICLE
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_CONFIG
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_CAR_LOC
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_MAP_PARAM
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_PARALLEL
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_ACTIONS
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_CODE_ADAS_P_OBJECTS
@@ -871,6 +872,12 @@ class MoGoAdasListenerImpl : OnAdasListener {
* @param getParamResp 配置参数
* @param adasParam 解析后的配置参数
*/
@ChainLog(
linkChainLog = CHAIN_TYPE_SOCKET_AUTOPILOT,
linkCode = CHAIN_SOURCE_ADAS,
nodeAliasCode = CHAIN_CODE_ADAS_MAP_PARAM,
paramIndexes = [0, 1, 2]
)
override fun onGetParamResp(
header: MessagePad.Header,
getParamResp: MessagePad.SetParamReq,

View File

@@ -495,7 +495,7 @@ internal class SOPSettingView @JvmOverloads constructor(
}
}
private var overTakeEditText:String = ""
private var overTakeEditText: String = ""
private var overTakeEditDel = false
/**
@@ -595,43 +595,12 @@ internal class SOPSettingView @JvmOverloads constructor(
}
}
etOverTake.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
CallerLogger.d(M_HMI + TAG, "onTextChanged before: $before , start: $start ,count: $count")
overTakeEditDel = before > 0
}
override fun afterTextChanged(s: Editable?) {
CallerLogger.d(M_HMI + TAG, "afterTextChanged s: $s , et:$overTakeEditText")
if(overTakeEditDel){
overTakeEditDel = false
return
}
s?.let {
if(it.toString() == overTakeEditText){
return
}
if(it.toString().isEmpty()){
return
}
val edit = it.toString().replace("m","").replace("/","").replace("s","").trim().toFloat()
val result = if (edit >= 12.5) 12.5f else if (edit <= 3) 3f else edit
FunctionBuildConfig.overTakeSpeed = result
overTakeEditText = "$result m/s"
etOverTake.setText(overTakeEditText)
CallerLogger.d(M_HMI + TAG, "result: $overTakeEditText")
}
}
})
ivSpeedOverTakeReduce.setOnClickListener {
if (FunctionBuildConfig.overTakeSpeed <= 3) {
ToastUtils.showShort("阈值最小可为3 m/s")
} else {
FunctionBuildConfig.overTakeSpeed -= 0.5f
etOverTake.setText("${FunctionBuildConfig.overTakeSpeed} m/s")
tvOverTakeLimit.text = "${FunctionBuildConfig.overTakeSpeed} m/s"
}
hmiAction("SOP 超车目标障碍物速度阈值", FunctionBuildConfig.overTakeSpeed)
}
@@ -640,19 +609,19 @@ internal class SOPSettingView @JvmOverloads constructor(
ToastUtils.showShort("阈值最大可为12.5 m/s")
} else {
FunctionBuildConfig.overTakeSpeed += 0.5f
etOverTake.setText("${FunctionBuildConfig.overTakeSpeed} m/s")
tvOverTakeLimit.text = "${FunctionBuildConfig.overTakeSpeed} m/s"
}
hmiAction("SOP 超车目标障碍物速度阈值", FunctionBuildConfig.overTakeSpeed)
}
btnSpeedOverTakeSet.setOnClickListener {
val isSuccess =
CallerAutoPilotControlManager.sendDetouringSpeed(FunctionBuildConfig.overTakeSpeed.toDouble())
CallerAutoPilotControlManager.sendOvertakeMaxSpeed(FunctionBuildConfig.overTakeSpeed.toDouble())
if (isSuccess == true) {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置成功")
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "成功")
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置成功")
hmiAction("SOP 超车目标障碍物速度阈值设置", "成功")
} else {
ToastUtils.showShort("变道绕障的目标障碍物速度阈值设置失败")
hmiAction("SOP 变道绕障的目标障碍物速度阈值设置", "失败")
ToastUtils.showShort("SOP 超车目标障碍物速度阈值设置失败")
hmiAction("SOP 超车目标障碍物速度阈值设置", "失败")
}
}
@@ -665,7 +634,7 @@ internal class SOPSettingView @JvmOverloads constructor(
tvSpeedOverTakeLimit.visibility = View.GONE
ivSpeedOverTakeReduce.visibility = View.GONE
etOverTake.visibility = View.GONE
tvOverTakeLimit.visibility = View.GONE
ivSpeedOverTakeAdd.visibility = View.GONE
btnSpeedOverTakeSet.visibility = View.GONE
}
@@ -720,7 +689,6 @@ internal class SOPSettingView @JvmOverloads constructor(
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
//添加 业务配置监听
@@ -731,6 +699,7 @@ internal class SOPSettingView @JvmOverloads constructor(
CallerAutopilotGetParamResponseDispatcher.addListener(TAG, this)
//查询融合模式
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.FUSION_MODE)
CallerAutoPilotControlManager.sendGetParamReq(AdasConstants.MapSystemParamType.OVERTAKE_MAX_SPEED)
//雨天、美化、点云设置同步
CallerSopSettingManager.addListener(TAG, this)
}
@@ -879,6 +848,9 @@ internal class SOPSettingView @JvmOverloads constructor(
rgFusionMode.check(R.id.rbPureRoad)
}
}
val overTakeSpeed = adasParam.overtakeMaxSpeed
tvOverTakeLimit.text = "$overTakeSpeed m/s"
}
}
}

View File

@@ -621,11 +621,11 @@
android:id="@+id/btnSpeedSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="@dimen/dp_20"
android:text="设置阈值"
app:layout_constraintBottom_toBottomOf="@id/ivSpeedAdd"
app:layout_constraintLeft_toRightOf="@id/ivSpeedAdd"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/ivSpeedAdd" />
<TextView
@@ -652,8 +652,8 @@
app:layout_constraintLeft_toRightOf="@id/tvSpeedOverTakeLimit"
app:layout_constraintTop_toTopOf="@id/tvSpeedOverTakeLimit" />
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/etOverTake"
<TextView
android:id="@+id/tvOverTakeLimit"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="5dp"
@@ -663,7 +663,7 @@
android:maxLines="1"
android:hint="10 m/s"
android:maxLength="10"
android:digits="1234567890"
android:digits="1234567890."
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:textSize="@dimen/dp_36"
@@ -677,19 +677,19 @@
android:layout_height="@dimen/dp_64"
android:padding="10dp"
android:src="@drawable/icon_add"
app:layout_constraintBottom_toBottomOf="@id/etOverTake"
app:layout_constraintLeft_toRightOf="@id/etOverTake"
app:layout_constraintTop_toTopOf="@id/etOverTake" />
app:layout_constraintBottom_toBottomOf="@id/tvOverTakeLimit"
app:layout_constraintLeft_toRightOf="@id/tvOverTakeLimit"
app:layout_constraintTop_toTopOf="@id/tvOverTakeLimit" />
<Button
android:id="@+id/btnSpeedOverTakeSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:padding="@dimen/dp_20"
android:text="设置阈值"
app:layout_constraintBottom_toBottomOf="@id/ivSpeedOverTakeAdd"
app:layout_constraintLeft_toRightOf="@id/ivSpeedOverTakeAdd"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/ivSpeedOverTakeAdd" />
<androidx.appcompat.widget.LinearLayoutCompat

View File

@@ -70,6 +70,7 @@ class ChainConstant {
const val CHAIN_CODE_ADAS_P_ACTIONS = "CHAIN_CODE_ADAS_P_ACTIONS"
const val CHAIN_CODE_ADAS_STATUS_QUERY_RESP = "CHAIN_CODE_ADAS_STATUS_QUERY_RESP"
const val CHAIN_CODE_ADAS_PARALLEL = "CHAIN_CODE_ADAS_PARALLEL"
const val CHAIN_CODE_ADAS_MAP_PARAM = "CHAIN_CODE_ADAS_MAP_PARAM"
const val CHAIN_CODE_RECORD_NATIVE_LEAK = "CHAIN_CODE_RECORD_NATIVE_LEAK"
const val CHAIN_CODE_RECORD_ANR = "CHAIN_CODE_RECORD_ANR"