同步212 版本

This commit is contained in:
lixiaopeng
2022-11-15 19:05:33 +08:00
730 changed files with 31009 additions and 55206 deletions

View File

@@ -33,6 +33,9 @@ object AppConfigInfo {
//工控机MAC地址
@Volatile
var iPCMacAddress: String? = null
//工控机DockerVersion
@Volatile
var dockerVersion: String? = null
//工控机协议版本
var protocolVersionNumber: Int = 0

View File

@@ -85,12 +85,17 @@ open class AutopilotStatusInfo : Serializable, Cloneable {
// 默认未连接
var ipcConnStatus = 0x01
/**
* 记录最后一次启动自动驾驶需要的参数结束自动驾驶后设置为null
*/
var autopilotControlParameters: AutopilotControlParameters? = null
override fun toString(): String {
return "connectIP=$connectIP, connectPort=$connectPort, " +
"connectStatus=$connectStatus, connectDescribe=$connectStatusDescribe, version=$version, dockVersion=$dockVersion," +
" locationStatus=$locationStatus), locationLat=$locationLat, locationLon=$locationLon," +
" satelliteTime=$satelliteTime, speed=$speed, state=$state, reason=$reason, camera=$camera," +
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus"
" radar=$radar, rtk=$rtk, pilotmode=$pilotmode, ipcConnStatus=$ipcConnStatus, autopilotControlParameters=$autopilotControlParameters"
}
public override fun clone(): AutopilotStatusInfo {

View File

@@ -0,0 +1,54 @@
package com.mogo.eagle.core.data.autopilot.pnc
import mogo.telematics.pad.MessagePad.DrivingState.*
class PncActionsHelper {
companion object {
fun getAction(driveState: Int, driveAction: Int): String {
return when (driveState) {
// 不在自动驾驶状态
NO_AUTODRIVING_VALUE -> {
""
}
// 车道保持 driving_action 1:车道保持状态2:跟车状态
LANKE_KEEP_VALUE -> {
if(driveAction == 2) "正在跟随车辆行驶" else ""
}
// 红绿灯通行状态 driving_action1 表示停止动作driving_action:2 表示通行动作
TRAFFIC_LIGHT_VALUE -> {
if (driveAction == 1) "正在等红灯" else ""
}
// follow全局择机向左变道状态 driving_action1 表示触发变道driving_action:2 表示择机保持driving_action:3 表示变道完成
FOLLOW_LANE_CHANGE_LEFT_VALUE -> {
if (driveAction == 2) "正在向左变道" else if (driveAction == 3) "正在完成变道" else ""
}
// follow全局择机向右变道状态 driving_action1 表示触发变道driving_action:2 表示择机保持driving_action:3 表示变道完成
FOLLOW_LANE_CHANGE_RIGHT_VALUE -> {
if (driveAction == 2) "正在向右变道" else if (driveAction == 3) "正在完成变道" else ""
}
// 变道绕障 主动向左/右变道状态 driving_action1 表示触发变道driving_action:2 表示执行变道driving_action:3 表示变道取消driving_action:4 表示变道完成
AUTO_LANE_CHANGE_LEFT_VALUE, AUTO_LANE_CHANGE_RIGHT_VALUE -> {
if (driveAction == 2) "正在绕过障碍物" else if (driveAction == 3) "变道取消" else ""
}
// 主动向左/右绕行状态 driving_action1 表示触发绕行driving_action:2 表示执行绕行driving_action:3 表示绕行取消driving_action:4 表示绕行完成
LANE_AVOID_LEFT_VALUE, LANE_AVOID_RIGHT_VALUE -> {
if (driveAction == 2) "正在避让障碍物" else ""
}
// 起步状态 driving_action1 表示正常启动driving_action:2 表示择机起步;
START_UP_VALUE -> {
if (driveAction == 1) "正在出站" else if (driveAction == 2) "正在等待出站" else ""
}
// 靠边停车状态 driving_action1 表示正常靠边停车driving_action:2 表示择机靠边停车;
PULL_OVER_VALUE -> {
if (driveAction == 1) "正在进站" else if (driveAction == 2) "正在等待进站" else ""
}
else -> ""
}
}
fun isWaitingTrafficlight(driveState: Int, driveAction: Int): Boolean {
return driveState == TRAFFIC_LIGHT_VALUE && driveAction == 1
}
}
}

View File

@@ -0,0 +1,3 @@
package com.mogo.eagle.core.data.badcase
data class RecordCaseEntity(var caseId: Int,var caseName: String,var topicList: ArrayList<String>)

View File

@@ -0,0 +1,8 @@
package com.mogo.eagle.core.data.badcase
/**
* @author XuXinChao
* @description BadCase录制模板实体类
* @since: 2022/10/25
*/
data class RecordTypeEntity(var id: Int,var desc: String,var topicsList:ArrayList<TopicEntity>)

View File

@@ -0,0 +1,3 @@
package com.mogo.eagle.core.data.badcase
data class TopicEntity(var topicName: String,var topicStatus: Boolean,var topicCanClick: Boolean)

View File

@@ -8,140 +8,100 @@ import java.io.Serializable;
* @since 6/21/22
*/
public class AppInfo implements Serializable {
private IdInfo _id;
private int bk_inst_id;
private String bk_inst_name;
private String bk_supplier_account;
private String screen_type; //1司机屏2乘客屏
private String sn;
private String last_time;
private String app_url;
private String bk_obj_id;
private int version_code;
private String version_name;
private String create_time;
private String car_type;
private String appUrl;
private int versionCode;
private String versionName;
private String screenType;
private String installTitle;
private String installContent;
private String installType; // 升级类型 1:提示升级 2:静默升级 3:强制升级
private String beginTime;
private String endTime;
public IdInfo get_id() {
return _id;
public String getAppUrl() {
return appUrl;
}
public void set_id(IdInfo _id) {
this._id = _id;
public void setAppUrl(String appUrl) {
this.appUrl = appUrl;
}
public int getBk_inst_id() {
return bk_inst_id;
public int getVersionCode() {
return versionCode;
}
public void setBk_inst_id(int bk_inst_id) {
this.bk_inst_id = bk_inst_id;
public void setVersionCode(int versionCode) {
this.versionCode = versionCode;
}
public String getBk_inst_name() {
return bk_inst_name;
public String getVersionName() {
return versionName;
}
public void setBk_inst_name(String bk_inst_name) {
this.bk_inst_name = bk_inst_name;
public void setVersionName(String versionName) {
this.versionName = versionName;
}
public String getBk_supplier_account() {
return bk_supplier_account;
public String getScreenType() {
return screenType;
}
public void setBk_supplier_account(String bk_supplier_account) {
this.bk_supplier_account = bk_supplier_account;
public void setScreenType(String screenType) {
this.screenType = screenType;
}
public String getScreen_type() {
return screen_type;
public String getInstallTitle() {
return installTitle;
}
public void setScreen_type(String screen_type) {
this.screen_type = screen_type;
public void setInstallTitle(String installTitle) {
this.installTitle = installTitle;
}
public String getSn() {
return sn;
public String getInstallContent() {
return installContent;
}
public void setSn(String sn) {
this.sn = sn;
public void setInstallContent(String installContent) {
this.installContent = installContent;
}
public String getApp_url() {
return app_url;
public String getInstallType() {
return installType;
}
public void setApp_url(String app_url) {
this.app_url = app_url;
public void setInstallType(String installType) {
this.installType = installType;
}
public String getBk_obj_id() {
return bk_obj_id;
public String getBeginTime() {
return beginTime;
}
public void setBk_obj_id(String bk_obj_id) {
this.bk_obj_id = bk_obj_id;
public void setBeginTime(String beginTime) {
this.beginTime = beginTime;
}
public int getVersion_code() {
return version_code;
public String getEndTime() {
return endTime;
}
public void setVersion_code(int version_code) {
this.version_code = version_code;
}
public String getVersion_name() {
return version_name;
}
public void setVersion_name(String version_name) {
this.version_name = version_name;
}
public String getLast_time() {
return last_time;
}
public void setLast_time(String last_time) {
this.last_time = last_time;
}
public String getCreate_time() {
return create_time;
}
public void setCreate_time(String create_time) {
this.create_time = create_time;
}
public String getCar_type() {
return car_type;
}
public void setCar_type(String car_type) {
this.car_type = car_type;
public void setEndTime(String endTime) {
this.endTime = endTime;
}
@Override
public String toString() {
return "AppInfo{" +
"_id=" + _id +
", bk_inst_id=" + bk_inst_id +
", bk_inst_name='" + bk_inst_name + '\'' +
", bk_supplier_account='" + bk_supplier_account + '\'' +
", screen_type='" + screen_type + '\'' +
", sn='" + sn + '\'' +
", last_time='" + last_time + '\'' +
", app_url='" + app_url + '\'' +
", bk_obj_id='" + bk_obj_id + '\'' +
", version_code=" + version_code +
", version_name='" + version_name + '\'' +
", create_time='" + create_time + '\'' +
", car_type='" + car_type + '\'' +
"appUrl='" + appUrl + '\'' +
", versionCode=" + versionCode +
", versionName='" + versionName + '\'' +
", screenType='" + screenType + '\'' +
", installTitle='" + installTitle + '\'' +
", installContent='" + installContent + '\'' +
", installType='" + installType + '\'' +
", beginTime='" + beginTime + '\'' +
", endTime='" + endTime + '\'' +
'}';
}
}

View File

@@ -10,20 +10,26 @@ import java.util.ArrayList;
* @since: 6/21/22
*/
public class UpgradeAppInfo extends BaseData {
public ArrayList<AppInfo> data;
// public ArrayList<AppInfo> data;
//
// public ArrayList<AppInfo> getData() {
// return data;
// }
//
// public void setData(ArrayList<AppInfo> data) {
// this.data = data;
// }
public ArrayList<AppInfo> getData() {
return data;
}
public AppInfo result;
public void setData(ArrayList<AppInfo> data) {
this.data = data;
public void setResult(AppInfo data) {
this.result = data;
}
@Override
public String toString() {
return "UpgradeAppInfo{" +
"data=" + data +
"result=" + result +
'}';
}
}

View File

@@ -29,6 +29,33 @@ object FunctionBuildConfig {
@JvmField
var isRainMode = false
/**
* 是否开启绕障类功能
* 默认开启
*/
@Volatile
@JvmField
var isDetouring = true
/**
* 变道绕障的目标障碍物速度阈值
* 默认 3 m/s
*/
@Volatile
@JvmField
var detouringSpeed = 3
/**
* 是否是感知优化模式
* 默认开启
* 打开后可实现感知优化效果
* 1、静止车辆抖动优化
* 2、静止车辆航向角和位置按车道方向优化
*/
@Volatile
@JvmField
var isBeautyMode = true
/**
* 当前APP的身份模式
*
@@ -61,6 +88,20 @@ object FunctionBuildConfig {
@JvmField
var gpsProvider = 0
/**
* 调试模式下,感知物识别使用的数据来源 0 = 工控机 1 = OBU
*/
@Volatile
@JvmField
var debugTrackerProvider = 0
/**
* 感知物识别使用的数据来源 0 = 默认输出 1 = 只显示工控硬件数据感知来源 2 = 只显示V2V数据来源 3 = 只显示V2I数据来源
*/
@Volatile
@JvmField
var trackerIPCProvider = 0
/**
* 地图是否绘制Adas识别回调的Marker
* true - 绘制
@@ -79,15 +120,6 @@ object FunctionBuildConfig {
@JvmField
var isDrawUnknownIdentifyData = false
/**
* 地图是否绘制 OBU 识别回调的Marker
* true - 绘制
* false - 不绘制
*/
@Volatile
@JvmField
var isDrawObuIdentifyData = true
/**
* 地图是否绘制 点云数据
* true - 绘制
@@ -95,7 +127,7 @@ object FunctionBuildConfig {
*/
@Volatile
@JvmField
var isDrawPointCloudData = false
var isDrawPointCloudData = true
/**
* 地图是否忽略判断条件直接绘制工控机引导线数据&全局路径规划
@@ -124,4 +156,11 @@ object FunctionBuildConfig {
@JvmField
var isReportWarning = true
/**
* 是否开启PNC障碍物颜色提醒
*/
@Volatile
@JvmField
var isPNCWarning = true
}

View File

@@ -0,0 +1,47 @@
package com.mogo.eagle.core.data.deva.bizconfig
class FuncBizConfig {
companion object{
const val V2N = "V2N"
const val V2I = "V2I"
const val V2V = "V2V"
const val FOUNDATION = "FOUNDATION"
// V2N
const val BIZ_VIP = "BIZ_VIP" // vip变灯
const val BIZ_OPT_LINE = "BIZ_OPT_LINE" // 最优车道
const val BIZ_VRU = "BIZ_VRU" // 弱势交通
const val BIZ_VRU_RI = "BIZ_VRU_RI" // 弱势交通逆行
const val BIZ_HLW = "BIZ_HLW" // 道路提示 todo 需求不明确是施工还是所有
// V2I
const val BIZ_IVP_GREEN = "BIZ_IVP_GREEN" // 绿波通行
const val BIZ_IVP = "BIZ_IVP" // 闯红灯预警
const val BIZ_RTS = "BIZ_RTS" // 查看视频流
const val BIZ_SLW = "BIZ_SLW" // 限速提醒
const val BIZ_IVS = "BIZ_IVS" // 车内标识 todo 暂未实现
const val BIZ_TJW = "BIZ_TJW" // 道路拥堵 todo 需求来源 是从云还是从OBU过来
// V2V
const val BIZ_AVW = "BIZ_AVW" // 异常车辆提醒
const val BIZ_LCW = "BIZ_LCW" // 变道碰撞预警
const val BIZ_BSW = "BIZ_BSW" // 盲区碰撞预警
const val BIZ_EBW = "BIZ_EBW" // 前车急刹预警
const val BIZ_FCW = "BIZ_FCW" // 前向碰撞预警
const val BIZ_LTA = "BIZ_LTA" // 左转辅助预警
const val BIZ_CLW = "BIZ_CLW" // 车辆失控预警
const val BIZ_DNPW = "BIZ_DNPW" // 逆向超车预警
// Foundation
const val BIZ_BEAUTY_MODE = "BIZ_BEAUTY_MODE" // 美化模式
const val BIZ_RAIN_MODE = "BIZ_RAIN_MODE" // 雨天模式
const val BIZ_FULL_LOG = "BIZ_FULL_LOG" // 全量日志
const val BIZ_TRACE_LOG = "BIZ_TRACE_LOG" // 链路日志 todo 暂未有场景,未实现
const val BIZ_BAG_RECORD = "BIZ_BAG_RECORD" // Bag录制
const val BIZ_WARNING_UPLOAD = "BIZ_WARNING_UPLOAD" // 异常上报
const val BIZ_LIMIT_SPEED_SET = "BIZ_LIMIT_SPEED_SET" // 限速设置 todo 暂未有场景,未实现
const val BIZ_BYPASS = "BIZ_BYPASS" // 绕障 todo 暂未实现
const val BIZ_AUTOPILOT_LANE_SELECTION = "BIZ_AUTOPILOT_LANE_SELECTION" // 择机变道 todo 暂未实现
const val BIZ_PNC_ACTIONS = "BIZ_PNC_ACTIONS" // PNC行为决策
const val BIZ_PNC_WARNING = "BIZ_PNC_WARNING" // PNC障碍物颜色
}
}

View File

@@ -10,6 +10,8 @@ class ChainConstant {
const val CHAIN_LINK_ADAS = 1
// 鹰眼初始化流程顺序相关
const val CHAIN_LINK_INIT = 2
// Native内存泄漏
const val CHAIN_LINK_LEAK = 10
const val CHAIN_LINK_LOG_CONNECT_STATUS = 0
const val CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO = 1
@@ -19,6 +21,9 @@ class ChainConstant {
const val CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE = 5
const val CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT = 6
const val CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS = 7
const val CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS = 8
const val CHAIN_LINK_LOG_NATIVE_LEAK = 100
const val CHAIN_LINK_LOG_CLOUD_V2N = 200
const val CHAIN_LINK_LOG_ADAS_INIT = "-eagleInitStatus"
const val CHAIN_LINK_LOG_ADAS_GNSS = "-adasWsGnssInfo"
@@ -28,6 +33,9 @@ class ChainConstant {
const val CHAIN_LINK_LOG_ADAS_VEHICLE = "-adasWsVehicle"
const val CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT = "-adasWsTrafficLight"
const val CHAIN_LINK_LOG_ADAS_PLANNING_OBJECTS = "-adasWsPlanningObj"
const val CHAIN_LINK_LOG_ADAS_PLANNING_ACTIONS = "-adasWsPlanningActions"
const val CHAIN_LINK_LOG_RECORD_NATIVE_LEAK = "-eagleRecordNativeLeak"
const val CHAIN_LINK_LOG_CLOUD_WEB_SOCKET_V2N = "-eagleCloudWSV2N"
const val CHAIN_ALIAS_CODE_MULTI_CONNECT = "CHAIN_ALIAS_CODE_MULTI_CONNECT"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG = "CHAIN_ALIAS_CODE_CAR_CONFIG"
@@ -42,19 +50,25 @@ class ChainConstant {
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE = "PAD_ADAS_MESSAGE_AUTOPILOT_VEHICLE"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT = "PAD_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS = "CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS = "CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS"
const val CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP = "CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP"
const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN = "PAD_ADAS_MESSAGE_AUTOPILOT_WARN"
const val CHAIN_ALIAS_CODE_RECORD_NATIVE_LEAK = "CHAIN_ALIAS_CODE_RECORD_NATIVE_LEAK"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST"
const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR"
const val CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED = "CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED"
const val CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED = "CHAIN_ALIAS_CODE_FUNC_CONFIG_CHANGED"
const val CHAIN_ALIAS_CODE_CLOUD_V2N = "CHAIN_ALIAS_CODE_CLOUD_V2N"
const val CHAIN_ALIAS_CODE_INIT_ON_MAP_LOADED = "CHAIN_ALIAS_CODE_INIT_ON_MAP_LOADED"
const val CHAIN_ALIAS_CODE_INIT_ON_MAP_INIT = "CHAIN_ALIAS_CODE_INIT_ON_MAP_INIT"
const val CHAIN_ALIAS_CODE_START_UP = "CHAIN_ALIAS_CODE_START_UP"
//operation by user
const val CHAIN_ALIAS_CODE_OCH_BUS_START_AUTOPILOT = "CHAIN_ALIAS_CODE_OCH_BUS_START_AUTOPILOT"
const val CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT = "CHAIN_ALIAS_CODE_OCH_TAXI_START_AUTOPILOT"
const val CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT = "CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT"
const val CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT_RESULT = "CHAIN_ALIAS_CODE_EAGLE_START_AUTOPILOT_RESULT"

View File

@@ -27,8 +27,8 @@ enum class TrafficTypeEnum(
3,
"",
R.raw.traffic_people,
R.raw.traffic_people_day,
R.raw.traffic_people
R.raw.xingren,
R.raw.xingren_night
),
TYPE_TRAFFIC_ID_BICYCLE(
2,

View File

@@ -1,5 +1,18 @@
package com.mogo.eagle.core.data.enums
fun WarningDirectionEnum.isLeft():Boolean{
return this.direction == WarningDirectionEnum.ALERT_WARNING_LEFT.direction
|| this.direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT.direction
|| this.direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT.direction
}
fun WarningDirectionEnum.isRight():Boolean{
return this.direction == WarningDirectionEnum.ALERT_WARNING_RIGHT.direction
|| this.direction == WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT.direction
|| this.direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT.direction
}
/**
*@author xiaoyuzhou
*@date 2021/9/10 8:48 下午

View File

@@ -0,0 +1,5 @@
package com.mogo.eagle.core.data.temp;
//临时使用 后期需要封装
public class EventLogout {
}

View File

@@ -2,6 +2,23 @@ package com.mogo.eagle.core.data.traffic
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
fun TrafficData.threatLevelColor():String{
return when (threatLevel) {
1 -> {
"#4CA6D1FF"
}
2 -> {
"#FFD53EFF"
}
3 -> {
"#FF3C45FF"
}
else -> {
"#4CA6D1FF"
}
}
}
/**
* @author xiaoyuzhou
* @date 2021/8/17 8:41 下午

View File

@@ -10,20 +10,22 @@ class RoadArrow {
private const val STRAIGHT_OR_U_TURN = 204 //直行转向
private const val TURN_LEFT = 205 //左转
private const val TURN_LEFT_OR_U_TURN = 206 //左转或转向
private const val TURN_RIGHT = 206 //右转
private const val TURN_RIGHT = 208 //右转
private const val TURN_LEFT_OR_RIGHT = 210 //左右转向
const val U_TURN = 211 //转向
private const val U_TURN = 211 //转向
private const val STRAIGHT_OR_LEFT_OR_RIGHT = 215 //直行或左转或右转
private const val TURN_RIGHT_OR_U_TURN = 217 //右转或转向
fun isLeft(arrowId: Int): Boolean {
return arrowId == STRAIGHT_OR_LEFT || arrowId == TURN_LEFT || arrowId == TURN_LEFT_OR_U_TURN || arrowId == TURN_LEFT_OR_RIGHT
}
fun isStraight(arrowId: Int): Boolean {
return arrowId == STRAIGHT_AHEAD || arrowId == STRAIGHT_OR_RIGHT || arrowId == STRAIGHT_OR_U_TURN
return arrowId == STRAIGHT_AHEAD || arrowId == STRAIGHT_OR_RIGHT || arrowId == STRAIGHT_OR_U_TURN || arrowId == STRAIGHT_OR_LEFT_OR_RIGHT
}
fun isRight(arrowId: Int): Boolean {
return arrowId == TURN_RIGHT || arrowId == STRAIGHT_OR_RIGHT || arrowId == TURN_LEFT_OR_RIGHT
return arrowId == STRAIGHT_OR_RIGHT || arrowId == TURN_RIGHT || arrowId == TURN_RIGHT_OR_U_TURN || arrowId == TURN_LEFT_OR_RIGHT
}
fun isOnlyRight(arrowId: Int): Boolean {

View File

@@ -0,0 +1,6 @@
package com.mogo.eagle.core.data.trafficlight
/**
* 控灯实体
*/
data class TrafficLightControl(val sn:String,val data:String,val next:String,val countDown:Int,val code:Int)