From ae20e898bbbb2112e9c98a640946b48be8893f8c Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 11 Jan 2023 14:50:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[pb10]=E6=9B=B4=E6=96=B0planning=E5=86=B3?= =?UTF-8?q?=E7=AD=96=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E6=9B=B4=E6=96=B0=E7=89=B9=E7=A7=8D=E8=BD=A6=E8=BE=86?= =?UTF-8?q?M1=E5=BA=95=E7=9B=98=E4=BB=A5=E5=8F=8A=E8=BD=A6=E5=86=85?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/message_pad.proto | 23 ++++- .../main/proto/special_vehicle_task_cmd.proto | 18 ++++ .../src/main/proto/vehicle_state.proto | 86 +++++++++---------- 3 files changed, 79 insertions(+), 48 deletions(-) diff --git a/libraries/mogo-adas-data/src/main/proto/message_pad.proto b/libraries/mogo-adas-data/src/main/proto/message_pad.proto index 102057b8bb..6a7697b44a 100644 --- a/libraries/mogo-adas-data/src/main/proto/message_pad.proto +++ b/libraries/mogo-adas-data/src/main/proto/message_pad.proto @@ -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_action:1 表示正常启动;driving_action:2 表示择机起步 PULL_OVER = 10; //靠边停车状态: driving_action:1 表示正常靠边停车;driving_action:2 表示择机靠边停车 UN_PROTECTED_INTERSECTION = 11; //路口预测响应状态: driving_action:1 表示触发了预测响应 + AUTO_LANE_CHANGE_LEFT_V2N = 12; //V2N主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 AUTO_LANE_CHANGE_RIGHT_V2N = 13; //V2N主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 LANE_AVOID_LEFT_V2N = 14; //V2N主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 LANE_AVOID_RIGHT_V2N = 15; //V2N主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 WAITING_V2N = 16; //V2N正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; + + AUTO_LANE_CHANGE_LEFT_RSI = 17; //V2N RSI主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + AUTO_LANE_CHANGE_RIGHT_RSI = 18; //V2N RSI主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + LANE_AVOID_LEFT_RSI = 19; //V2N RSI主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + LANE_AVOID_RIGHT_RSI = 20; //V2N RSI主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + WAITING_RSI = 21; //V2N RSI正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; + + AUTO_LANE_CHANGE_LEFT_RSM = 22; //V2N RSM主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + AUTO_LANE_CHANGE_RIGHT_RSM = 23; //V2N RSM主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + LANE_AVOID_LEFT_RSM = 24; //V2N RSM主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + LANE_AVOID_RIGHT_RSM = 25; //V2N RSM主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + WAITING_RSM = 26; //V2N RSM正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶; + + AUTO_LANE_CHANGE_LEFT_RSI_TRIANGLE = 27; //V2N 三角锥主动向左变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + AUTO_LANE_CHANGE_RIGHT_RSI_TRIANGLE = 28; //V2N 三角锥主动向右变道状态: driving_action:1 表示触发变道;driving_action:2 表示执行变道;driving_action:3 表示变道取消;driving_action:4 表示变道完成 + LANE_AVOID_LEFT_RSI_TRIANGLE = 29; //V2N 三角锥主动向左绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + LANE_AVOID_RIGHT_RSI_TRIANGLE = 30; //V2N 三角锥主动向右绕行状态: driving_action:1 表示触发绕行;driving_action:2 表示执行绕行;driving_action:3 表示绕行取消;driving_action:4 表示绕行完成 + WAITING_RSI_TRIANGLE = 31; //V2N 三角锥正在等待变道避让施工场景/静止障碍物: driving_action:1 表示正在等待;driving_action:2 表示等待超时请求平行驾驶 } enum DrivingAction @@ -525,3 +543,4 @@ message TripInfoEvent //message definition for MsgTypeBagManagerCmd //refer to bag_manager.proto for details + diff --git a/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto b/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto index 850a8ae307..b3d273c353 100644 --- a/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto +++ b/libraries/mogo-adas-data/src/main/proto/special_vehicle_task_cmd.proto @@ -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指令 } diff --git a/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto b/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto index ac6fbc96cc..b93e5b74c8 100644 --- a/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto +++ b/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto @@ -4,49 +4,43 @@ package chassis; import "header.proto"; import "chassis.proto"; -message SweeperFuTianCleanSystemState { - optional bool secu_rem_ctrl_sts = 1 [default = false]; // 远程控制使能信号 - optional bool secu_mot_work_sts = 2 [default = false]; // 电机启停控制状态信号 - optional bool secu_dup_tail_door_open_sts = 3 [default = false]; // 垃圾箱尾门开状态信号 - optional bool secu_dup_tail_door_close_sts = 4 [default = false]; // 垃圾箱尾门关状态信号 - optional bool secu_auto_dup_tail_tip_sts = 5 [default = false]; // 垃圾箱倾翻状态信号 - optional bool secu_dup_tail_ret_sts = 6 [default = false]; // 垃圾箱回位状态信号 - optional bool secu_work_stand_sts = 7 [default = false]; // 标准作业状态信号 - optional bool secu_work_strong_sts = 8 [default = false]; // 强力作业状态信号 - optional bool secu_suctionnozzlebaffle_sts = 9 [default = false]; // 吸嘴挡板开状态信号 - optional bool secu_dusk_close_sts = 10 [default = false]; // 降尘关闭状态信号 - optional bool secu_work_left_sts = 11 [default = false]; // 左侧作业状态信号 - optional bool secu_work_on_bothsides_sts = 12 [default = false]; // 两侧作业状态信号 - optional bool secu_work_right_sts = 13 [default = false]; // 右侧作业状态信号 - optional bool secu_work_ton_sts = 14 [default = false]; // 纯吸作业状态信号 - optional bool secu_work_spray_gun_sts = 15 [default = false]; // 喷雾喷枪作业状态信号 - optional bool secu_work_enc_des_sts = 16 [default = false]; // 箱体清淤作业状态信号 - optional bool secu_mod_wash_sweep_sts = 17 [default = false]; // 洗扫模式状态信号 - optional bool secu_mod_wash_sts = 18 [default = false]; // 纯洗模式状态信号 - optional bool secu_sweepdisk_red_sts = 19 [default = false]; // 扫盘减速开关状态信号 - optional bool secu_sweepdisk_acc_sts = 20 [default = false]; // 扫盘加速开关状态信号 - optional bool secu_arrowlight_sts = 21 [default = false]; // 箭头灯开关状态信号 - optional bool secu_floodlight_sts = 22 [default = false]; // 照明灯开关状态信号 - optional bool secu_work_cleaning_sts = 23 [default = false]; // 保洁作业状态信号 - optional bool secu_clean_music_sts = 24 [default = false]; // 音乐开关状态信号 +message RoboTaxiState { + optional bool veh_rta_recover = 1 [default = false]; // 车辆可进入自动驾驶标志位,不可进入时一定时间内恢复可自动进入 + optional bool veh_rta_no_recover = 2 [default = false]; // 车辆可进入自动驾驶标志位,不可进入时恢复无法自动进入 +} - optional bool secu_motor_oil_com_fail = 25 [default = false]; // 油泵电机通讯失败报警 - optional bool secu_motor_water_com_fail = 26 [default = false]; // 水泵电机通讯失败报警 - optional bool secu_motor_air_com_fail = 27 [default = false]; // 风机电机通讯失败报警 - optional bool secu_fan_fault = 28 [default = false]; // 散热风扇故障报警 - optional bool secu_chassis_com_fail = 29 [default = false]; // 底盘通讯失败报警 - optional bool secu_panel_com_fail = 30 [default = false]; // 操作面板通讯失败报警 - optional bool secu_oillevel_check = 31 [default = false]; // 液压油位低请停机检查报警信号 - optional bool secu_oilstmjam_check = 32 [default = false]; // 液压油滤堵塞请停机检查报警信号 - optional bool secu_water_valve_close = 33 [default = false]; // 出水阀门关闭不能清洗作业报警信号 - optional bool secu_clean_water_tank_low = 34 [default = false]; // 清水箱水位低不能清洗作业报警信号 - optional bool secu_sewage_water_tank_full = 35 [default = false]; // 污水箱满请停止作业报警信号 - optional bool secu_coolwatertemp_high = 36 [default = false]; // 水温过高请停机检查报警信号 - optional bool secu_coolwater_less = 37 [default = false]; // 冷却液位低报警信号 - optional bool secu_tail_gate_open = 38 [default = false]; // 尾门打开接近开关 - optional bool secu_manual_intervention_sts = 39 [default = false]; // 提示是否有人为介入 - optional bool secu_ready_finish_sts = 40 [default = false]; // 上装ready完成 - optional float secu_sweepdisk_speed = 41 [default = 0]; // 扫盘转速 +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 { @@ -90,14 +84,14 @@ 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状态 } From 60349f8d339d174c48da0b8786cb8a02fa90bd36 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 11 Jan 2023 15:10:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[pb10]=E6=9B=B4=E6=96=B0PB=E8=80=81?= =?UTF-8?q?=E5=BA=95=E7=9B=98=E7=A7=BB=E9=99=A4=E6=B8=85=E6=89=AB=E8=BD=A6?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/proto/vehicle_state.proto | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto b/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto index b93e5b74c8..de1b6f386b 100644 --- a/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto +++ b/libraries/mogo-adas-data/src/main/proto/vehicle_state.proto @@ -4,6 +4,51 @@ package chassis; import "header.proto"; import "chassis.proto"; +message SweeperFuTianCleanSystemState { + optional bool secu_rem_ctrl_sts = 1 [default = false]; // 远程控制使能信号 + optional bool secu_mot_work_sts = 2 [default = false]; // 电机启停控制状态信号 + optional bool secu_dup_tail_door_open_sts = 3 [default = false]; // 垃圾箱尾门开状态信号 + optional bool secu_dup_tail_door_close_sts = 4 [default = false]; // 垃圾箱尾门关状态信号 + optional bool secu_auto_dup_tail_tip_sts = 5 [default = false]; // 垃圾箱倾翻状态信号 + optional bool secu_dup_tail_ret_sts = 6 [default = false]; // 垃圾箱回位状态信号 + optional bool secu_work_stand_sts = 7 [default = false]; // 标准作业状态信号 + optional bool secu_work_strong_sts = 8 [default = false]; // 强力作业状态信号 + optional bool secu_suctionnozzlebaffle_sts = 9 [default = false]; // 吸嘴挡板开状态信号 + optional bool secu_dusk_close_sts = 10 [default = false]; // 降尘关闭状态信号 + optional bool secu_work_left_sts = 11 [default = false]; // 左侧作业状态信号 + optional bool secu_work_on_bothsides_sts = 12 [default = false]; // 两侧作业状态信号 + optional bool secu_work_right_sts = 13 [default = false]; // 右侧作业状态信号 + optional bool secu_work_ton_sts = 14 [default = false]; // 纯吸作业状态信号 + optional bool secu_work_spray_gun_sts = 15 [default = false]; // 喷雾喷枪作业状态信号 + optional bool secu_work_enc_des_sts = 16 [default = false]; // 箱体清淤作业状态信号 + optional bool secu_mod_wash_sweep_sts = 17 [default = false]; // 洗扫模式状态信号 + optional bool secu_mod_wash_sts = 18 [default = false]; // 纯洗模式状态信号 + optional bool secu_sweepdisk_red_sts = 19 [default = false]; // 扫盘减速开关状态信号 + optional bool secu_sweepdisk_acc_sts = 20 [default = false]; // 扫盘加速开关状态信号 + optional bool secu_arrowlight_sts = 21 [default = false]; // 箭头灯开关状态信号 + optional bool secu_floodlight_sts = 22 [default = false]; // 照明灯开关状态信号 + optional bool secu_work_cleaning_sts = 23 [default = false]; // 保洁作业状态信号 + optional bool secu_clean_music_sts = 24 [default = false]; // 音乐开关状态信号 + + optional bool secu_motor_oil_com_fail = 25 [default = false]; // 油泵电机通讯失败报警 + optional bool secu_motor_water_com_fail = 26 [default = false]; // 水泵电机通讯失败报警 + optional bool secu_motor_air_com_fail = 27 [default = false]; // 风机电机通讯失败报警 + optional bool secu_fan_fault = 28 [default = false]; // 散热风扇故障报警 + optional bool secu_chassis_com_fail = 29 [default = false]; // 底盘通讯失败报警 + optional bool secu_panel_com_fail = 30 [default = false]; // 操作面板通讯失败报警 + optional bool secu_oillevel_check = 31 [default = false]; // 液压油位低请停机检查报警信号 + optional bool secu_oilstmjam_check = 32 [default = false]; // 液压油滤堵塞请停机检查报警信号 + optional bool secu_water_valve_close = 33 [default = false]; // 出水阀门关闭不能清洗作业报警信号 + optional bool secu_clean_water_tank_low = 34 [default = false]; // 清水箱水位低不能清洗作业报警信号 + optional bool secu_sewage_water_tank_full = 35 [default = false]; // 污水箱满请停止作业报警信号 + optional bool secu_coolwatertemp_high = 36 [default = false]; // 水温过高请停机检查报警信号 + optional bool secu_coolwater_less = 37 [default = false]; // 冷却液位低报警信号 + optional bool secu_tail_gate_open = 38 [default = false]; // 尾门打开接近开关 + optional bool secu_manual_intervention_sts = 39 [default = false]; // 提示是否有人为介入 + optional bool secu_ready_finish_sts = 40 [default = false]; // 上装ready完成 + 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]; // 车辆可进入自动驾驶标志位,不可进入时恢复无法自动进入 @@ -91,6 +136,7 @@ message VehicleState { optional float bms_soc = 40 [default = 0]; // 电量百分比范围 0~100 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状态 From bceea30a5278f03b1edab0bd101ba882e7973bc3 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Wed, 11 Jan 2023 19:27:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[pb10][=E9=87=91=E6=97=85M1][=E7=94=B5?= =?UTF-8?q?=E6=B1=A0=E7=8A=B6=E6=80=81=E5=9B=9E=E8=B0=83]=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=87=91=E6=97=85M1=E6=8E=A7=E5=88=B6=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E5=92=8Cm1=E7=8A=B6=E6=80=81=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3,=E4=BB=A5=E5=8F=8A=E7=94=B5=E6=B1=A0?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adas/client/bean/SpecialVehicleBean.java | 125 +++++++++++++++++- .../zhidao/adas/client/ui/MainActivity.java | 9 +- .../ui/special/SpecialVehicleDialog.java | 1 + .../ui/special/SpecialVehicleFloatWindow.java | 8 +- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 17 +++ .../IMoGoBatteryManagementSystemListener.kt | 13 ++ .../IMoGoRoboBusJinlvM1StatesListener.kt | 12 ++ ...rBatteryManagementSystemListenerManager.kt | 21 +++ ...llerRoboBusJinlvM1StatesListenerManager.kt | 22 +++ .../zhidao/support/adas/high/AdasChannel.java | 89 +++++++++++++ .../zhidao/support/adas/high/AdasManager.java | 71 ++++++++++ .../support/adas/high/IAdasNetCommApi.java | 53 ++++++++ .../adas/high/msg/VehicleStateMessage.java | 2 + 13 files changed, 435 insertions(+), 8 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoBatteryManagementSystemListener.kt create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoRoboBusJinlvM1StatesListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerBatteryManagementSystemListenerManager.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerRoboBusJinlvM1StatesListenerManager.kt diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SpecialVehicleBean.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SpecialVehicleBean.java index 63db092b72..6a9cf64512 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SpecialVehicleBean.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/bean/SpecialVehicleBean.java @@ -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 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 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; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 7601289010..10e795c8b7 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -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(); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java index 0903180db1..6f5d1761c8 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleDialog.java @@ -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("特种车辆"); } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java index 31fa4fad1b..51a652c336 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/special/SpecialVehicleFloatWindow.java @@ -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); } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 90b3da6225..8e4cfbe994 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -176,6 +176,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() @@ -184,6 +191,12 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerSweeperFutianCleanSystemListenerManager.invokeSweeperFutianCleanSystemState(it) } } + //金旅M1 + vehicleState.roboBusJinlvM1State?.also { + if (vehicleState.hasRoboBusJinlvM1State()) { + CallerRoboBusJinlvM1StatesListenerManager.invokeRoboBusJinlvM1States(it) + } + } } else { CallerAutopilotVehicleStateListenerManager.invokeAutopilotDataException(header.timestamp.toLong()) } @@ -235,6 +248,10 @@ class MoGoAdasListenerImpl : OnAdasListener { //刹车 CallerChassisBrakeStateListenerManager.invokeAutopilotBrake(it.brakePedalResponsePosition) } + chassisStates.bmsSystemStates?.let { + //电量 + CallerBatteryManagementSystemListenerManager.invokeBatteryManagementSystemStates(it) + } chassisStates.taskSystemStates?.let { taskSystemStates -> taskSystemStates.sweeperFutianTaskSystemStates?.let { //清扫车(福田)清扫控制系统状态 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoBatteryManagementSystemListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoBatteryManagementSystemListener.kt new file mode 100644 index 0000000000..bdf0a9c180 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoBatteryManagementSystemListener.kt @@ -0,0 +1,13 @@ +package com.mogo.eagle.core.function.api.autopilot + +import chassis.ChassisStatesOuterClass + +/** + * 电池管理系统 + */ +interface IMoGoBatteryManagementSystemListener { + /** + * 电池管理系统 + */ + fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoRoboBusJinlvM1StatesListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoRoboBusJinlvM1StatesListener.kt new file mode 100644 index 0000000000..fe41e2e245 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoRoboBusJinlvM1StatesListener.kt @@ -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) +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerBatteryManagementSystemListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerBatteryManagementSystemListenerManager.kt new file mode 100644 index 0000000000..62c02f4be3 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerBatteryManagementSystemListenerManager.kt @@ -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() { + + /** + * 电池管理系统 + */ + fun invokeBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) { + M_LISTENERS.forEach { + val listener = it.value + listener.onBatteryManagementSystemStates(states) + } + } +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerRoboBusJinlvM1StatesListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerRoboBusJinlvM1StatesListenerManager.kt new file mode 100644 index 0000000000..b961321d8e --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerRoboBusJinlvM1StatesListenerManager.kt @@ -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() { + + /** + * 电池管理系统 + */ + fun invokeRoboBusJinlvM1States(states: VehicleStateOuterClass.RoboBusJinlvM1State) { + M_LISTENERS.forEach { + val listener = it.value + listener.onRoboBusJinlvM1States(states) + } + } +} \ No newline at end of file diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index a010764762..a78ef34a3d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -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); + } + /** * 特种车辆命令下发 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 6f7dd63466..413db8a7dc 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -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); + } + /** * 特种车辆命令下发 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index a4c0e104fc..01651ce607 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -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); + /** * 特种车辆命令下发 * diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java index 87483f2175..941a28beec 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java @@ -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***************/