[change] 更新清扫车PB以及接口
This commit is contained in:
@@ -39,3 +39,61 @@ enum EPSSteeringMode {
|
||||
ManualFromEPSFailure = 3;
|
||||
TemporaryInhibited = 4;
|
||||
}
|
||||
|
||||
enum EPBWorkStatus {
|
||||
EPBSTATUS_NONE = 0;
|
||||
EPBSTATUS_LOCKED = 1;
|
||||
EPBSTATUS_RELEASED = 2;
|
||||
EPBSTATUS_LOCKED_FAIL = 3;
|
||||
EPBSTATUS_RELEASE_FAIL = 4;
|
||||
EPBSTATUS_FAULT = 5;
|
||||
}
|
||||
|
||||
enum VehicleTakeOverStatus {
|
||||
None_TakeOver = 0;
|
||||
Vehicle_TakeOver = 1;
|
||||
Longitude_TakeOver = 2;
|
||||
Latteral_TakeOver = 3;
|
||||
}
|
||||
|
||||
enum VehicleFaultLevel {
|
||||
None_Fault = 0;
|
||||
General_Fault = 1;
|
||||
Serious_Fault = 2;
|
||||
Critical_Fault = 3;
|
||||
}
|
||||
|
||||
enum VehicleControlMode {
|
||||
VehicleControl_Manual = 0;
|
||||
VehicleControl_Nonemanualdefault = 1;
|
||||
VehicleControl_Autostandby = 2;
|
||||
VehicleControl_Autoactive = 3;
|
||||
VehicleControl_Remotestandby = 4;
|
||||
VehicleControl_Remoteactive = 5;
|
||||
VehicleControl_Telecontrolstandby = 6;
|
||||
VehicleControl_Telecontrolactive = 7;
|
||||
VehicleControl_Fault = 8;
|
||||
}
|
||||
|
||||
enum VehicleWireControlModeRequest {
|
||||
NoneWireControl = 0;
|
||||
WireControl = 1;
|
||||
}
|
||||
|
||||
enum CleanSystemControlMode {
|
||||
Clean_Off_Line = 0;
|
||||
Clean_Ready = 1;
|
||||
Clean_Work_Standby = 2;
|
||||
Clean_Sweeping_Standby = 3;
|
||||
Clean_Sweeping_Both_Side_Work = 4;
|
||||
Clean_Sweeping_Left_Work = 5;
|
||||
Clean_Sweeping_Right_Work = 6;
|
||||
Clean_WashSweep_Standby = 7;
|
||||
Clean_WashSweep_Both_Side_Work = 8;
|
||||
Clean_WashSweep_Left_Work = 9;
|
||||
Clean_WashSweep_Right_Wrok = 10;
|
||||
Clean_PureWash_Standby = 11;
|
||||
Clean_PureWash_Both_Side_Work = 12;
|
||||
Clean_PureWash_Left_Work = 13;
|
||||
Clean_PureWash_Right_Work = 14;
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
syntax = "proto2";
|
||||
package chassis;
|
||||
|
||||
import "header.proto";
|
||||
|
||||
message RoboSweeperFuTianCleanCmd {
|
||||
optional uint32 clean_open_requirement = 1 [default = 0]; // 清扫作业开启需求 0--no req 1--Req_clean_work, 2--No_clean_work
|
||||
optional uint32 clean_mode_requirement = 2 [default = 0]; // 清扫作业模式需求 0--no req, 1--Sweeping mode, 2--Wash sweeper mode, 3--Pure wash mode, 4--Pure draw mode
|
||||
optional uint32 clean_direction_requirement = 3 [default = 0]; // 清扫方向需求指 0--no req, 1--both side work, 2--left side work, 3--right side work
|
||||
optional uint32 clean_mode_requirement = 2 [default = 0]; // 清扫作业模式需求 0--no req, 1--Sweeping mode, 2--Wash sweeper mode, 3--Pure wash mode, 4--Pure draw mode, 5--close clean mode
|
||||
optional uint32 clean_direction_requirement = 3 [default = 0]; // 清扫方向需求指 0--no req, 1--both side work, 2--left side work, 3--right side work, 4--close side work
|
||||
optional uint32 clean_intensity_requirement = 4 [default = 0]; // 作业强度需求 0--no req, 1--stand clean work, 2--strong clean work
|
||||
optional uint32 dusk_close_requirement = 5 [default = 0]; // 降尘关闭需求 0--no req, 1--close dusk, 2--open dusk
|
||||
optional uint32 suction_nozzlefle_open_requirement = 6 [default = 0]; // 吸嘴挡板需求 0--no req, 1--open, 2--close
|
||||
@@ -22,6 +24,7 @@ message RoboVanSkywellTaskCmd {
|
||||
}
|
||||
|
||||
message SpecialVehicleTaskCmd {
|
||||
optional RoboSweeperFuTianTaskCmd robo_sweeper_futian_task_cmd = 1; // 福田清扫车业务指令
|
||||
optional RoboVanSkywellTaskCmd robo_van_skywell_task_cmd = 2; // 开沃小巴业务指令
|
||||
optional common.Header header = 1;
|
||||
optional RoboSweeperFuTianTaskCmd robo_sweeper_futian_task_cmd = 2; // 福田清扫车业务指令
|
||||
optional RoboVanSkywellTaskCmd robo_van_skywell_task_cmd = 3; // 开沃小巴业务指令
|
||||
}
|
||||
|
||||
@@ -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 VehicleState {
|
||||
optional common.Header header = 1;
|
||||
optional chassis.PilotMode pilot_mode = 2 [default = MODE_MANUAL];
|
||||
@@ -38,4 +83,19 @@ message VehicleState {
|
||||
optional bool chassis_status_missing = 29 [default = false]; //未收到车辆底盘反馈信息
|
||||
optional bool brake_light_status = 30 [default = false]; //自驾模式下制动灯状态
|
||||
optional bool pilot_mode_condition_met = 31 [default = false];
|
||||
|
||||
optional float steeringSpd = 32 [default = 0]; // steering angle speed in degrees/s
|
||||
|
||||
optional float leftFrontWheelAngle = 33 [default = 0];//左前轮角度(deg),左负右正
|
||||
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]; // 整车故障状态
|
||||
|
||||
reserved 39 to 199;
|
||||
|
||||
optional SweeperFuTianCleanSystemState sweeper_futian_clean_system_state = 200; // 福田清扫车上装状态信息
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ import java.util.TimerTask;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import chassis.SpecialVehicleTaskCmdOuterClass;
|
||||
import common.HeaderOuterClass;
|
||||
import mogo.telematics.pad.MessagePad;
|
||||
import okio.ByteString;
|
||||
|
||||
@@ -74,6 +75,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
private DispatchHandler dispatchHandler;//分发
|
||||
private DispatchHandler dispatchHandlerPointCloud;//原始的点云数据分发
|
||||
private Timer checkCompatibilityTimer;//检查版本兼容性定时器 连接成功后5秒内等待工控机发送配置信息
|
||||
private int seqSpecialVehicle = 0;//特种车辆命令发送次数
|
||||
/**
|
||||
* 与工控机链接状态
|
||||
*/
|
||||
@@ -407,6 +409,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
ipcConnectedIp = ipAddress;
|
||||
ipcConnectedPort = port;
|
||||
subscribeInterface = new SubscribeInterface(this);
|
||||
seqSpecialVehicle = 0;
|
||||
updateConnectStatus(Constants.IPC_CONNECTION_STATUS.CONNECTED, "已连接");
|
||||
//根据连接配置 进行接口订阅或取消订阅配置
|
||||
if (adasOptions != null) {
|
||||
@@ -1047,11 +1050,10 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendRoboSweeperFuTianTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboSweeperFuTianTaskCmd fuTianTaskCmd) {
|
||||
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd cmd = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
|
||||
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
|
||||
.newBuilder()
|
||||
.setRoboSweeperFutianTaskCmd(fuTianTaskCmd)
|
||||
.build();
|
||||
return sendSpecialVehicleTaskCmd(cmd);
|
||||
.setRoboSweeperFutianTaskCmd(fuTianTaskCmd);
|
||||
return sendSpecialVehicleTaskCmd(cmdBuild);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1062,22 +1064,36 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec
|
||||
*/
|
||||
@Override
|
||||
public boolean sendRoboVanSkywellTaskCmd(SpecialVehicleTaskCmdOuterClass.RoboVanSkywellTaskCmd vanSkywellTaskCmd) {
|
||||
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd cmd = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
|
||||
SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild = SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd
|
||||
.newBuilder()
|
||||
.setRoboVanSkywellTaskCmd(vanSkywellTaskCmd)
|
||||
.build();
|
||||
return sendSpecialVehicleTaskCmd(cmd);
|
||||
.setRoboVanSkywellTaskCmd(vanSkywellTaskCmd);
|
||||
return sendSpecialVehicleTaskCmd(cmdBuild);
|
||||
}
|
||||
|
||||
/**
|
||||
* 特种车辆命令下发
|
||||
*
|
||||
* @param cmd 命令
|
||||
* @param cmdBuild 命令
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd cmd) {
|
||||
return sendPBMessage(MessageType.TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD.typeCode, cmd.toByteArray());
|
||||
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild) {
|
||||
long t = System.currentTimeMillis();
|
||||
int sec = (int) (t / 1000);
|
||||
int nsec = (int) (t % 1000 * 1000000);
|
||||
HeaderOuterClass.Time time = HeaderOuterClass.Time
|
||||
.newBuilder()
|
||||
.setSec(sec)
|
||||
.setNsec(nsec)
|
||||
.build();
|
||||
HeaderOuterClass.Header header = HeaderOuterClass.Header.newBuilder()
|
||||
.setSeq(++seqSpecialVehicle)
|
||||
.setStamp(time)
|
||||
.setFrameId("special_vehicle_task_cmd")
|
||||
.setModuleName("EagleEye")
|
||||
.build();
|
||||
cmdBuild.setHeader(header);
|
||||
return sendPBMessage(MessageType.TYPE_SEND_SPECIAL_VEHICLE_TASK_CMD.typeCode, cmdBuild.build().toByteArray());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -572,12 +572,12 @@ public class AdasManager implements IAdasNetCommApi {
|
||||
/**
|
||||
* 特种车辆命令下发
|
||||
*
|
||||
* @param cmd 命令
|
||||
* @param cmdBuild 命令
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd cmd) {
|
||||
return mChannel != null && mChannel.sendSpecialVehicleTaskCmd(cmd);
|
||||
public boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild) {
|
||||
return mChannel != null && mChannel.sendSpecialVehicleTaskCmd(cmdBuild);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -295,10 +295,10 @@ public interface IAdasNetCommApi {
|
||||
/**
|
||||
* 特种车辆命令下发
|
||||
*
|
||||
* @param cmd 命令
|
||||
* @param cmdBuild 命令
|
||||
* @return boolean
|
||||
*/
|
||||
boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd cmd);
|
||||
boolean sendSpecialVehicleTaskCmd(SpecialVehicleTaskCmdOuterClass.SpecialVehicleTaskCmd.Builder cmdBuild);
|
||||
|
||||
// TODO 需求暂停 待讨论
|
||||
// boolean getRoutes();
|
||||
|
||||
Reference in New Issue
Block a user