Merge remote-tracking branch 'origin/dev_arch_opt_3.0' into dev_arch_opt_3.0

This commit is contained in:
donghongyu
2023-01-11 19:28:41 +08:00
16 changed files with 517 additions and 13 deletions

View File

@@ -16,9 +16,10 @@ import java.util.List;
import chassis.SpecialVehicleTaskCmdOuterClass;
public class SpecialVehicleBean {
private interface TAG {
public interface TAG {
String FTQSC = "ftqsc";//福田清扫车
String KWXB = "kwxb";//开沃小巴
String JLM1 = "jlm1";//金旅M1
}
public interface SEND_TYPE {
@@ -30,7 +31,7 @@ public class SpecialVehicleBean {
public final String name;
public final String simpleName;//简单名字 两个字
public final List<SpecialVehicleOption> options;
private final String tag;//用于存储
public final String tag;//用于存储
public int sendType = SEND_TYPE.ONE;//发送类型
private SpecialVehicleFloatWindowManager manager;
@@ -127,20 +128,79 @@ public class SpecialVehicleBean {
int checkPos = options.get(index).checkPos;
setFuTianCleanValue(builder, index, checkPos);
}
SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd fuTianCleanCmd = builder.build();
SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd = SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd.newBuilder()
.setRoboSweeperFutianCleanCmd(fuTianCleanCmd).build();
AdasManager.getInstance().sendRoboSweeperFuTianTaskCmd(fuTianTaskCmd);
str = TextFormat.printer().escapingNonAscii(false).printToString(fuTianTaskCmd).replaceAll("\n", "");
str = TextFormat.printer().escapingNonAscii(false).shortDebugString(fuTianTaskCmd);
} else if (TextUtils.equals(this.tag, TAG.KWXB)) { //开沃小巴
SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd = SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd.newBuilder()
.build();
AdasManager.getInstance().sendRoboVanSkywellTaskCmd(vanSkywellTaskCmd);
} else if (TextUtils.equals(this.tag, TAG.JLM1)) { //金旅M1
SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.Builder builder = SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder();
if (index < 0) {
for (index = 0; index < options.size(); index++) {
SpecialVehicleOption option = options.get(index);
if (option.moreCheckPos != -1) {
option.checkPos = option.moreCheckPos;
option.moreCheckPos = -1;
}
setJinlvM1Value(builder, index, option.checkPos);
}
} else {
int checkPos = options.get(index).checkPos;
setJinlvM1Value(builder, index, checkPos);
}
SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd roboBusJinlvM1Cmd = builder.build();
AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd);
str = TextFormat.printer().escapingNonAscii(false).shortDebugString(roboBusJinlvM1Cmd);
}
return str;
}
private void setJinlvM1Value(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.Builder builder, int index, int checkPos) {
switch (index) {
case 0:
builder.setAirConditionerCmd(checkPos);
break;
case 1:
builder.setAirConditionerModeCmd(checkPos);
break;
case 2:
builder.setAirConditionerWindSpeedCmd(checkPos);
break;
case 3:
if (checkPos == 1) {
checkPos = 16;
} else if (checkPos == 2) {
checkPos = 20;
} else if (checkPos == 3) {
checkPos = 26;
}
builder.setAirConditionerTemperatureCmd(checkPos);
break;
case 4:
builder.setHeaderCmd(checkPos);
break;
case 5:
builder.setHeaderWindSpeedCmd(checkPos);
break;
case 6:
builder.setMainLamp1Cmd(checkPos);
break;
case 7:
builder.setMainLamp2Cmd(checkPos);
break;
case 8:
builder.setSmallLampCmd(checkPos);
break;
case 9:
builder.setFrontDoorCmd(checkPos);
break;
}
}
private void setFuTianCleanValue(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianCleanCmd.Builder builder, int index, int checkPos) {
switch (index) {
case 0:
@@ -222,8 +282,65 @@ public class SpecialVehicleBean {
optionsF.add(new SpecialVehicleOption("扫盘加速", tag, value, 0));
SpecialVehicleBean beanF = new SpecialVehicleBean("福田清扫车", "福清", TAG.FTQSC, optionsF);
SpecialVehicleBean beanK = new SpecialVehicleBean("开沃小巴", "开巴", TAG.KWXB, null);
List<SpecialVehicleOption> optionsM1 = new ArrayList<>();
tag = 0;
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-开启空调";
value[2] = "2-关闭空调";
optionsM1.add(new SpecialVehicleOption("空调", tag++, value, 0));
value = new String[4];
value[0] = "0-DEFAULT";
value[1] = "1-自动模式";
value[2] = "2-制冷模式";
value[3] = "3-通风模式";
optionsM1.add(new SpecialVehicleOption("空调模式", tag++, value, 0));
value = new String[4];
value[0] = "0-DEFAULT";
value[1] = "1-1档";
value[2] = "2-2档";
value[3] = "3-3档";
optionsM1.add(new SpecialVehicleOption("空调档位", tag++, value, 0));
value = new String[4];
value[0] = "0-DEFAULT";
value[1] = "16-16度";
value[2] = "20-20度";
value[3] = "26-26度";
optionsM1.add(new SpecialVehicleOption("空调温度", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-开启暖风";
value[2] = "2-关闭暖风";
optionsM1.add(new SpecialVehicleOption("暖风机", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-1档";
value[2] = "2-2档";
optionsM1.add(new SpecialVehicleOption("暖风机档位", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-开启";
value[2] = "2-关闭";
optionsM1.add(new SpecialVehicleOption("顶灯1", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-开启";
value[2] = "2-关闭";
optionsM1.add(new SpecialVehicleOption("顶灯2", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-开启";
value[2] = "2-关闭";
optionsM1.add(new SpecialVehicleOption("氛围灯", tag++, value, 0));
value = new String[3];
value[0] = "0-DEFAULT";
value[1] = "1-打开";
value[2] = "2-关闭";
optionsM1.add(new SpecialVehicleOption("车门", tag++, value, 0));
SpecialVehicleBean beanM1 = new SpecialVehicleBean("金旅M1", "M1", TAG.JLM1, optionsM1);
list.add(beanF);
list.add(beanK);
list.add(beanM1);
return list;
}

View File

@@ -880,7 +880,7 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
@Override
public void onAutopilotStatistics(AutopilotStatistics statistics) {
Log.i(TAG, "启动自动驾驶状态=" + statistics.status + " 用时=" + statistics.usedTime + " SetAutopilotModeReq=" + TextFormat.printer().escapingNonAscii(false).printToString(statistics.req) + " failedMessage=" + (statistics.failedMessage == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.failedMessage)));
Log.i(TAG, "启动自动驾驶状态=" + statistics.status + " 用时=" + statistics.usedTime + " SetAutopilotModeReq=" + (statistics.req == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.req)) + " failedMessage=" + (statistics.failedMessage == null ? null : TextFormat.printer().escapingNonAscii(false).printToString(statistics.failedMessage)));
}
@Override
@@ -1291,6 +1291,13 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas
AdasManager.getInstance().sendGlobalPathReq();
break;
case Constants.TITLE.SEND_SPECIAL_VEHICLE_TASK_CMD:
// AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(1,2,3,4);
// AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(5,6);
// AdasManager.getInstance().sendRoboBusJinlvM1MainLampCmd(7,8);
// AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(9);
// AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(10);
if (specialVehicleBeanList == null) {
specialVehicleBeanList = SpecialVehicleBean.init();
}

View File

@@ -108,6 +108,7 @@ public class SpecialVehicleDialog extends Dialog {
private void initView() {
recyclerView = findViewById(R.id.recyclerView);
findViewById(R.id.settings).setVisibility(View.GONE);
findViewById(R.id.cancel).setVisibility(View.GONE);
TextView textView = findViewById(R.id.title);
textView.setText("特种车辆");
}

View File

@@ -330,9 +330,11 @@ public class SpecialVehicleFloatWindow extends LinearLayout {
.findViewById(R.id.r_btn);
button.setText(value[j]);
button.setId(j);
if (i == 1 || i == 2 || i == 3 || i == 4) {
ViewGroup.LayoutParams layoutParams = button.getLayoutParams();
layoutParams.width = 202;
if (specialVehicleBean.tag.equals(SpecialVehicleBean.TAG.FTQSC)) {
if (i == 1 || i == 2 || i == 3 || i == 4) {
ViewGroup.LayoutParams layoutParams = button.getLayoutParams();
layoutParams.width = 202;
}
}
radioGroup.addView(button);
}

View File

@@ -180,6 +180,13 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerChassisThrottleStateListenerManager.invokeAutopilotThrottle(vehicleState.throttle)
//刹车
CallerChassisBrakeStateListenerManager.invokeAutopilotBrake(vehicleState.brake)
//电量
if (vehicleState.hasBmsSoc()) {
CallerBatteryManagementSystemListenerManager.invokeBatteryManagementSystemStates(
ChassisStatesOuterClass.BMSSystemStates.newBuilder()
.setBmsSoc(vehicleState.bmsSoc).build()
)
}
//清扫车(福田)清扫控制系统状态
vehicleState.sweeperFutianCleanSystemState?.also { sweeperState ->
val bytes: ByteArray = sweeperState.toByteArray()
@@ -188,6 +195,12 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerSweeperFutianCleanSystemListenerManager.invokeSweeperFutianCleanSystemState(it)
}
}
//金旅M1
vehicleState.roboBusJinlvM1State?.also {
if (vehicleState.hasRoboBusJinlvM1State()) {
CallerRoboBusJinlvM1StatesListenerManager.invokeRoboBusJinlvM1States(it)
}
}
} else {
CallerAutopilotVehicleStateListenerManager.invokeAutopilotDataException(header.timestamp.toLong())
}
@@ -239,6 +252,10 @@ class MoGoAdasListenerImpl : OnAdasListener {
//刹车
CallerChassisBrakeStateListenerManager.invokeAutopilotBrake(it.brakePedalResponsePosition)
}
chassisStates.bmsSystemStates?.let {
//电量
CallerBatteryManagementSystemListenerManager.invokeBatteryManagementSystemStates(it)
}
chassisStates.taskSystemStates?.let { taskSystemStates ->
taskSystemStates.sweeperFutianTaskSystemStates?.let {
//清扫车(福田)清扫控制系统状态

View File

@@ -0,0 +1,13 @@
package com.mogo.eagle.core.function.api.autopilot
import chassis.ChassisStatesOuterClass
/**
* 电池管理系统
*/
interface IMoGoBatteryManagementSystemListener {
/**
* 电池管理系统
*/
fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates)
}

View File

@@ -0,0 +1,12 @@
package com.mogo.eagle.core.function.api.autopilot
import chassis.ChassisStatesOuterClass
import chassis.VehicleStateOuterClass
/**
* 金旅M1
*/
interface IMoGoRoboBusJinlvM1StatesListener {
fun onRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State)
}

View File

@@ -0,0 +1,21 @@
package com.mogo.eagle.core.function.call.autopilot
import chassis.ChassisStatesOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener
import com.mogo.eagle.core.function.call.base.CallerBase
/**
* 电池管理系统 包含 电量剩余百分比 电压 电流等
*/
object CallerBatteryManagementSystemListenerManager : CallerBase<IMoGoBatteryManagementSystemListener>() {
/**
* 电池管理系统
*/
fun invokeBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) {
M_LISTENERS.forEach {
val listener = it.value
listener.onBatteryManagementSystemStates(states)
}
}
}

View File

@@ -0,0 +1,22 @@
package com.mogo.eagle.core.function.call.autopilot
import chassis.ChassisStatesOuterClass
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.function.api.autopilot.IMoGoRoboBusJinlvM1StatesListener
import com.mogo.eagle.core.function.call.base.CallerBase
/**
* 金旅M1
*/
object CallerRoboBusJinlvM1StatesListenerManager : CallerBase<IMoGoRoboBusJinlvM1StatesListener>() {
/**
* 电池管理系统
*/
fun invokeRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) {
M_LISTENERS.forEach {
val listener = it.value
listener.onRoboBusJinlvM1States(states)
}
}
}

View File

@@ -6,7 +6,7 @@ import "geometry.proto";
enum ProtocolVersion
{
Defaultver = 0;
CurrentVersion = 9; //每次修改proto文件增加1
CurrentVersion = 10; //每次修改proto文件增加1
}
enum MessageType
@@ -209,7 +209,6 @@ message Line
message TrajectoryDownloadReq
{
Line line = 1; //路线
uint32 source = 2; //来源方, 0:invalid, 1:pad, 2:aicloud
}
// message definition for MessageType: MsgTypeBasicInfoReq
@@ -457,11 +456,30 @@ enum DrivingState
START_UP = 9; //起步状态: driving_action1 表示正常启动driving_action:2 表示择机起步
PULL_OVER = 10; //靠边停车状态: driving_action1 表示正常靠边停车driving_action:2 表示择机靠边停车
UN_PROTECTED_INTERSECTION = 11; //路口预测响应状态: driving_action1 表示触发了预测响应
AUTO_LANE_CHANGE_LEFT_V2N = 12; //V2N主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_RIGHT_V2N = 13; //V2N主动向右变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
LANE_AVOID_LEFT_V2N = 14; //V2N主动向左绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_RIGHT_V2N = 15; //V2N主动向右绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
WAITING_V2N = 16; //V2N正在等待变道避让施工场景/静止障碍物: driving_action1 表示正在等待driving_action:2 表示等待超时请求平行驾驶;
AUTO_LANE_CHANGE_LEFT_RSI = 17; //V2N RSI主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_RIGHT_RSI = 18; //V2N RSI主动向右变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
LANE_AVOID_LEFT_RSI = 19; //V2N RSI主动向左绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_RIGHT_RSI = 20; //V2N RSI主动向右绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景/静止障碍物: driving_action1 表示正在等待driving_action:2 表示等待超时请求平行驾驶;
AUTO_LANE_CHANGE_LEFT_RSM = 22; //V2N RSM主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_RIGHT_RSM = 23; //V2N RSM主动向右变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
LANE_AVOID_LEFT_RSM = 24; //V2N RSM主动向左绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_RIGHT_RSM = 25; //V2N RSM主动向右绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
WAITING_RSM = 26; //V2N RSM正在等待变道避让施工场景/静止障碍物: driving_action1 表示正在等待driving_action:2 表示等待超时请求平行驾驶;
AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角锥主动向左变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角锥主动向右变道状态: driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角锥主动向左绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角锥主动向右绕行状态: driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
WAITING_RSI_TRIANGLE = 31; //V2N 三角锥正在等待变道避让施工场景/静止障碍物: driving_action1 表示正在等待driving_action:2 表示等待超时请求平行驾驶
}
enum DrivingAction
@@ -525,3 +543,4 @@ message TripInfoEvent
//message definition for MsgTypeBagManagerCmd
//refer to bag_manager.proto for details

View File

@@ -24,8 +24,26 @@ message RoboVanSkywellTaskCmd {
optional uint32 horn_cmd = 2 [default = 0]; //1:开始鸣笛 2:停止鸣笛
}
message RoboBusJinlvM1Cmd {
optional uint32 air_conditioner_cmd = 1; //0: default, 1: 开启空调, 2: 关闭空调
optional uint32 air_conditioner_mode_cmd = 2; //模式 0: default, 1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度)
optional uint32 air_conditioner_wind_speed_cmd = 3; //风速 0: default, 1: 1档2: 2档3:3档
optional uint32 air_conditioner_temperature_cmd = 4; //温度 0: default, 16-26: 温度
optional uint32 header_cmd = 5; //0: default, 1: 开启暖风机, 2: 关闭暖风机
optional uint32 header_wind_speed_cmd = 6; //风速 0: default, 1: 1档2: 2档
optional uint32 main_lamp1_cmd = 7; //0: default, 1: 开启顶灯1, 2: 关闭顶灯1
optional uint32 main_lamp2_cmd = 8; //0: default, 1: 开启顶灯2, 2: 关闭顶灯2
optional uint32 small_lamp_cmd = 9; //0: default, 1: 开启小灯(氛围灯), 2: 关闭小灯(氛围灯)
optional uint32 front_door_cmd = 10; //0: default, 1: 开启车门, 2: 关闭车门
}
message SpecialVehicleTaskCmd {
optional common.Header header = 1;
optional RoboSweeperFuTianTaskCmd robo_sweeper_futian_task_cmd = 2; // 福田清扫车业务指令
optional RoboVanSkywellTaskCmd robo_van_skywell_task_cmd = 3; // 开沃小巴业务指令
optional RoboBusJinlvM1Cmd robo_bus_jinlv_m1_cmd = 4; //金旅定制车m1指令
}

View File

@@ -49,6 +49,45 @@ message SweeperFuTianCleanSystemState {
optional float secu_sweepdisk_speed = 41 [default = 0]; // 扫盘转速
}
message RoboTaxiState {
optional bool veh_rta_recover = 1 [default = false]; // 车辆可进入自动驾驶标志位,不可进入时一定时间内恢复可自动进入
optional bool veh_rta_no_recover = 2 [default = false]; // 车辆可进入自动驾驶标志位,不可进入时恢复无法自动进入
}
message RoboBusState {
optional bool reserved = 1; // 预留
}
message AirConditionerState {
optional bool is_on = 1; //是否开启
optional uint32 mode = 2; //模式, 1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度)
optional uint32 temperature = 3; //温度
optional uint32 wind_speed = 4; //风速, 1-3: 1-3档
}
message HeaterState {
optional bool is_on = 1; //是否开启
optional uint32 wind_speed = 2; //风速, 1-2: 1-2档
}
message DoorState {
optional bool is_on = 1; //是否开启
}
message LightState {
optional bool is_on = 1; //是否开启
optional uint32 color = 2; //颜色
}
message RoboBusJinlvM1State {
optional AirConditionerState air_conditioner_state = 1; //空调
optional HeaterState heater_state = 2; //暖风机
optional DoorState front_door_state = 3; //车门
optional LightState main_lamp1_state = 4; //顶灯1
optional LightState main_lamp2_state = 5; //顶灯2
optional LightState small_lamp_state = 6; //小灯(氛围灯)
}
message VehicleState {
optional common.Header header = 1;
optional chassis.PilotMode pilot_mode = 2 [default = MODE_MANUAL];
@@ -90,14 +129,15 @@ message VehicleState {
optional float rightFrontWheelAngle = 34 [default = 0]; //右前轮角度deg,左负右正
optional chassis.EPBWorkStatus epb = 35 [default = EPBSTATUS_NONE]; // EPB工作状态
optional chassis.VehicleTakeOverStatus vehicletakeoverstatus = 36 [default = None_TakeOver]; // 车辆人工接管状态
optional bool Emergency_Stop_Switch = 37 [default = false]; // 急停开关状态
optional chassis.VehicleFaultLevel vehiclefaultlevel = 38 [default = None_Fault]; // 整车故障状态
optional float bms_soc = 40 [default = 0]; // 电量百分比范围 0~100
reserved 41 to 199;
optional float fuel_value = 41 [default = 0]; // 油车剩余油量
optional SweeperFuTianCleanSystemState sweeper_futian_clean_system_state = 200; // 福田清扫车上装状态信息
optional RoboTaxiState robo_taxi_state = 201; // taxi状态
optional RoboBusState robo_bus_state = 202; // bus状态
optional RoboBusJinlvM1State robo_bus_jinlv_m1_state = 203; //金旅定制车m1状态
}

View File

@@ -1207,6 +1207,95 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
return sendSpecialVehicleTaskCmd(cmdBuild);
}
/**
* 金旅M1空调控制
*
* @param switchCmd 0: default, 1: 开启空调, 2: 关闭空调
* @param modeCmd 模式 0: default, 1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度)
* @param windSpeedCmd 风速 0: default, 1: 1档2: 2档3:3档
* @param temperatureCmd 温度 0: default, 16-26: 温度
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1AirConditionerCmd(int switchCmd, int modeCmd, int windSpeedCmd, int temperatureCmd) {
return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder()
.setAirConditionerCmd(switchCmd)
.setAirConditionerModeCmd(modeCmd)
.setAirConditionerWindSpeedCmd(windSpeedCmd)
.setAirConditionerTemperatureCmd(temperatureCmd)
.build());
}
/**
* 金旅M1暖风机控制
*
* @param switchCmd //0: default, 1: 开启暖风机, 2: 关闭暖风机
* @param windSpeedCmd //风速 0: default, 1: 1档2: 2档
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1HeaderCmd(int switchCmd, int windSpeedCmd) {
return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder()
.setHeaderCmd(switchCmd)
.setHeaderWindSpeedCmd(windSpeedCmd)
.build());
}
/**
* 金旅M1顶灯控制
*
* @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1
* @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) {
return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder()
.setMainLamp1Cmd(switch1Cmd)
.setMainLamp2Cmd(switch2Cmd)
.build());
}
/**
* 金旅M1小灯(氛围灯)控制
*
* @param switchCmd //0: default, 1: 开启小灯(氛围灯), 2: 关闭小灯(氛围灯)
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1SmallLampCmd(int switchCmd) {
return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder()
.setSmallLampCmd(switchCmd)
.build());
}
/**
* 金旅M1车门控制
*
* @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1FrontDoorCmd(int switchCmd) {
return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder()
.setFrontDoorCmd(switchCmd)
.build());
}
/**
* 金旅M1业务指令下发
*
* @param roboBusJinlvM1Cmd 命令
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd roboBusJinlvM1Cmd) {
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
.newBuilder()
.setRoboBusJinlvM1Cmd(roboBusJinlvM1Cmd);
return sendSpecialVehicleTaskCmd(cmdBuild);
}
/**
* 特种车辆命令下发
*

View File

@@ -623,6 +623,77 @@ public class AdasManager implements IAdasNetCommApi {
return mChannel != null && mChannel.sendRoboVanSkywellTaskCmd(vanSkywellTaskCmd);
}
/**
* 金旅M1空调控制
*
* @param switchCmd 0: default, 1: 开启空调, 2: 关闭空调
* @param modeCmd 模式 0: default, 1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度)
* @param windSpeedCmd 风速 0: default, 1: 1档2: 2档3:3档
* @param temperatureCmd 温度 0: default, 16-26: 温度
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1AirConditionerCmd(int switchCmd, int modeCmd, int windSpeedCmd, int temperatureCmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd);
}
/**
* 金旅M1暖风机控制
*
* @param switchCmd //0: default, 1: 开启暖风机, 2: 关闭暖风机
* @param windSpeedCmd //风速 0: default, 1: 1档2: 2档
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1HeaderCmd(int switchCmd, int windSpeedCmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd);
}
/**
* 金旅M1顶灯控制
*
* @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1
* @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1MainLampCmd(switch1Cmd, switch2Cmd);
}
/**
* 金旅M1车门控制
*
* @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1SmallLampCmd(int switchCmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1SmallLampCmd(switchCmd);
}
/**
* 金旅M1车门控制
*
* @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1FrontDoorCmd(int switchCmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1FrontDoorCmd(switchCmd);
}
/**
* 金旅M1业务指令下发
*
* @param roboBusJinlvM1Cmd 命令
* @return boolean
*/
@Override
public boolean sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd roboBusJinlvM1Cmd) {
return mChannel != null && mChannel.sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd);
}
/**
* 特种车辆命令下发
*

View File

@@ -335,6 +335,59 @@ public interface IAdasNetCommApi {
*/
boolean sendRoboVanSkywellTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd);
/**
* 金旅M1空调控制
*
* @param switchCmd 0: default, 1: 开启空调, 2: 关闭空调
* @param modeCmd 模式 0: default, 1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度)
* @param windSpeedCmd 风速 0: default, 1: 1档2: 2档3:3档
* @param temperatureCmd 温度 0: default, 16-26: 温度
* @return boolean
*/
boolean sendRoboBusJinlvM1AirConditionerCmd(int switchCmd, int modeCmd, int windSpeedCmd, int temperatureCmd);
/**
* 金旅M1暖风机控制
*
* @param switchCmd //0: default, 1: 开启暖风机, 2: 关闭暖风机
* @param windSpeedCmd //风速 0: default, 1: 1档2: 2档
* @return boolean
*/
boolean sendRoboBusJinlvM1HeaderCmd(int switchCmd, int windSpeedCmd);
/**
* 金旅M1顶灯控制
*
* @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1
* @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2
* @return boolean
*/
boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd);
/**
* 金旅M1小灯(氛围灯)控制
*
* @param switchCmd //0: default, 1: 开启小灯(氛围灯), 2: 关闭小灯(氛围灯)
* @return boolean
*/
boolean sendRoboBusJinlvM1SmallLampCmd(int switchCmd);
/**
* 金旅M1车门控制
*
* @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门
* @return boolean
*/
boolean sendRoboBusJinlvM1FrontDoorCmd(int switchCmd);
/**
* 金旅M1业务指令下发
*
* @param roboBusJinlvM1Cmd 命令
* @return boolean
*/
boolean sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd roboBusJinlvM1Cmd);
/**
* 特种车辆命令下发
*

View File

@@ -43,6 +43,8 @@ public class VehicleStateMessage extends MyAbstractMessageHandler {
* parking_brake longitude_driving_mode eps_steering_mode
* steering_sign location_missing trajectory_missing
* chassis_status_missing pilot_mode_condition_met vehicletakeoverstatus
* fuel_value robo_taxi_state robo_bus_state
* robo_bus_jinlv_m1_state
*/
private void compatibility(OnAdasListener adasListener, RawData raw, VehicleStateOuterClass.VehicleState vehicleState) throws InvalidProtocolBufferException {
/**************老地盘转换成新地盘PB***************/