Merge branch 'dev_robotaxi-d_240807_6.6.0' into tmp_6.7.0_arrow
This commit is contained in:
@@ -50,6 +50,7 @@ object LineManager : CallerBase<ILineCallback>() {
|
||||
function.invoke(start,end)
|
||||
}
|
||||
}
|
||||
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}")
|
||||
}
|
||||
fun getStationsWithContrai(function: (start:BusStationBean,end:BusStationBean,contrai: ContraiInfo) -> Unit){
|
||||
startStation?.let { start->
|
||||
@@ -59,6 +60,7 @@ object LineManager : CallerBase<ILineCallback>() {
|
||||
}
|
||||
}
|
||||
}
|
||||
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__contraiInfo:${contraiInfo}")
|
||||
}
|
||||
|
||||
fun getStationsWithLine(function: (start:BusStationBean,end:BusStationBean,lineInfo: LineInfo) -> Unit){
|
||||
@@ -69,6 +71,7 @@ object LineManager : CallerBase<ILineCallback>() {
|
||||
}
|
||||
}
|
||||
}
|
||||
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__lineInfos:${lineInfos}")
|
||||
}
|
||||
fun getStationsWithLineAndContrai(function: (start:BusStationBean,end:BusStationBean,lineInfo: LineInfo,contrai: ContraiInfo) -> Unit){
|
||||
startStation?.let { start->
|
||||
@@ -80,12 +83,14 @@ object LineManager : CallerBase<ILineCallback>() {
|
||||
}
|
||||
}
|
||||
}
|
||||
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}__endStation:${endStation}__lineInfos:${lineInfos}__contraiInfo:${contraiInfo}")
|
||||
}
|
||||
|
||||
fun getStartStation(function: (start:BusStationBean) -> Unit){
|
||||
startStation?.let { start ->
|
||||
function.invoke(start)
|
||||
}
|
||||
OchChainLogManager.writeChainLog("异常情况","startStation:${startStation}")
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@@ -32,8 +32,8 @@ class VisualViewModel : ViewModel(),
|
||||
}
|
||||
|
||||
override fun onSceneChanged(scene: Scene) {
|
||||
if (scene.isCanSwitch) {// 可切换
|
||||
when (scene.angle) {
|
||||
if (scene.isCanSwitch()) {// 可切换
|
||||
when (scene.getVisualAngleMode()) {
|
||||
VisualAngleMode.MODE_MEDIUM_SIGHT -> {
|
||||
UiThreadHandler.post({
|
||||
this.viewCallback?.setViewShow(true)
|
||||
|
||||
@@ -58,7 +58,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
|
||||
private fun showFragment() {
|
||||
val supportFragmentManager: FragmentManager? = activity?.supportFragmentManager
|
||||
injectStatusBar()
|
||||
val fragment = if (LoginStatusManager.isLogin()) {
|
||||
val fragment = getFragment()
|
||||
LoginStatusManager.resetFragment()
|
||||
@@ -70,6 +69,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
commonService?.resetFragment()
|
||||
LoginStatusManager.getFragment()
|
||||
}
|
||||
injectStatusBar()
|
||||
|
||||
d(TAG, "切换 fragment:${fragment}")
|
||||
|
||||
@@ -199,7 +199,6 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
}
|
||||
|
||||
override fun onBusinessChangeDebug(businessEnum: BusinessEnum) {
|
||||
injectStatusBar()
|
||||
if (businessEnum == BusinessEnum.None) {
|
||||
CallerHmiManager.hideToolsView()
|
||||
ToggleDebugView.toggleDebugView.dismiss()
|
||||
@@ -224,6 +223,7 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
back.commitAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
injectStatusBar()
|
||||
}
|
||||
|
||||
private fun injectStatusBar() {
|
||||
@@ -235,10 +235,16 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback {
|
||||
contentView.fitsSystemWindows = false
|
||||
decorView.clipToPadding = false
|
||||
var statusBarView = decorView.findViewWithTag<View>("status_bar")
|
||||
if(statusBarView!=null){
|
||||
return
|
||||
}
|
||||
val statusBar = commonService?.getStatusBarView(it)
|
||||
if(statusBarView==null){
|
||||
|
||||
}else{
|
||||
if(statusBar == statusBarView||statusBar==null){
|
||||
return
|
||||
}else{
|
||||
removeStatusBar()
|
||||
}
|
||||
}
|
||||
statusBarView = statusBar ?: StatusBarView(it)
|
||||
statusBarView.tag = "status_bar"
|
||||
val statusBarLP = FrameLayout.LayoutParams(
|
||||
|
||||
@@ -0,0 +1,577 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 2,
|
||||
"identityHash": "66522c4500a3e7f83bfcabf98096c6bd",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "contrail_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `csv_file_url` TEXT, `csv_file_md5` TEXT, `txt_file_url` TEXT, `txt_file_md5` TEXT, `contrail_save_time` INTEGER, `md5` TEXT)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "csvFileUrl",
|
||||
"columnName": "csv_file_url",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "csvFileMd5",
|
||||
"columnName": "csv_file_md5",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "txtFileUrl",
|
||||
"columnName": "txt_file_url",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "txtFileMd5",
|
||||
"columnName": "txt_file_md5",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "contrailSaveTime",
|
||||
"columnName": "contrail_save_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "md5",
|
||||
"columnName": "md5",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_contrail_data_table_line_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"line_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)"
|
||||
},
|
||||
{
|
||||
"name": "index_contrail_data_table_md5",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"md5"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_md5` ON `${TABLE_NAME}` (`md5`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": []
|
||||
},
|
||||
{
|
||||
"tableName": "line_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `line_name` TEXT, `end_station_name` TEXT, `line_get_time` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineName",
|
||||
"columnName": "line_name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "endStationName",
|
||||
"columnName": "end_station_name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "linegetTime",
|
||||
"columnName": "line_get_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_line_data_table_line_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"line_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_line_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": []
|
||||
},
|
||||
{
|
||||
"tableName": "site_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `site_id` INTEGER, `line_id` INTEGER, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `introduction` TEXT, `is_play_tts` INTEGER, `md5` TEXT)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "siteId",
|
||||
"columnName": "site_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "nameKr",
|
||||
"columnName": "name_kr",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "seq",
|
||||
"columnName": "seq",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "gcjLon",
|
||||
"columnName": "gcj_lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "gcjLat",
|
||||
"columnName": "gcj_lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "introduction",
|
||||
"columnName": "introduction",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPlayTts",
|
||||
"columnName": "is_play_tts",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "md5",
|
||||
"columnName": "md5",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_site_data_table_site_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"site_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_site_id` ON `${TABLE_NAME}` (`site_id`)"
|
||||
},
|
||||
{
|
||||
"name": "index_site_data_table_line_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"line_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": []
|
||||
},
|
||||
{
|
||||
"tableName": "task_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskId",
|
||||
"columnName": "task_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskDate",
|
||||
"columnName": "task_data",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskStartTime",
|
||||
"columnName": "task_start_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "startTime",
|
||||
"columnName": "start_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "endtime",
|
||||
"columnName": "end_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskgetTime",
|
||||
"columnName": "task_get_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "status",
|
||||
"columnName": "status",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_task_data_table_task_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"task_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_task_id` ON `${TABLE_NAME}` (`task_id`)"
|
||||
},
|
||||
{
|
||||
"name": "index_task_data_table_line_id",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"line_id"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": []
|
||||
},
|
||||
{
|
||||
"tableName": "used_task_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskId",
|
||||
"columnName": "task_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "line_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "siteId",
|
||||
"columnName": "site_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineName",
|
||||
"columnName": "line_name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "nameKr",
|
||||
"columnName": "name_kr",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "seq",
|
||||
"columnName": "seq",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "gcjLon",
|
||||
"columnName": "gcj_lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "gcjLat",
|
||||
"columnName": "gcj_lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "drivingStatus",
|
||||
"columnName": "driving_status",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "leaving",
|
||||
"columnName": "leaving",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "arrivedTime",
|
||||
"columnName": "arrived_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "leaveTime",
|
||||
"columnName": "leave_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "introduction",
|
||||
"columnName": "introduction",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPlayTts",
|
||||
"columnName": "is_play_tts",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "eventSaveTime",
|
||||
"columnName": "event_save_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [],
|
||||
"foreignKeys": []
|
||||
},
|
||||
{
|
||||
"tableName": "event_data_table",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `driver_id` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "eventType",
|
||||
"columnName": "event_type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineId",
|
||||
"columnName": "lineId",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "lineName",
|
||||
"columnName": "lineName",
|
||||
"affinity": "TEXT",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskId",
|
||||
"columnName": "task_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "taskStartTime",
|
||||
"columnName": "task_start_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "businessTime",
|
||||
"columnName": "business_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "writeVersion",
|
||||
"columnName": "write_version",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "siteId",
|
||||
"columnName": "site_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "seq",
|
||||
"columnName": "seq",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "driverId",
|
||||
"columnName": "driver_id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": false
|
||||
},
|
||||
{
|
||||
"fieldPath": "eventSaveTime",
|
||||
"columnName": "event_save_time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "updateStatus",
|
||||
"columnName": "update_status",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"columnNames": [
|
||||
"id"
|
||||
],
|
||||
"autoGenerate": true
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_event_data_table_event_save_time",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"event_save_time"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_event_data_table_event_save_time` ON `${TABLE_NAME}` (`event_save_time`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": []
|
||||
}
|
||||
],
|
||||
"views": [],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '66522c4500a3e7f83bfcabf98096c6bd')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -18,15 +18,9 @@ data class ShuttleEventRequest(val requestId: String, val sn: String, val busine
|
||||
val md5Hex = DigestUtils.md5Hex(waitUpdateEvent.toString())
|
||||
val eventList4Request = mutableListOf<Event>()
|
||||
var tempEvent:Event?=null
|
||||
var driverId = 0L
|
||||
LoginStatusManager.getLoginInfo()?.let {
|
||||
if(it.driverId>0){
|
||||
driverId = it.driverId
|
||||
}
|
||||
}
|
||||
waitUpdateEvent.forEach {
|
||||
tempEvent = Event(it.eventType,
|
||||
EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,driverId)
|
||||
EventData(it.taskId,it.businessTime,it.writeVersion,it.siteId,it.seq,it.driverId)
|
||||
)
|
||||
eventList4Request.add(tempEvent!!)
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import android.os.Environment
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import androidx.room.migration.Migration
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
import androidx.sqlite.db.SupportSQLiteOpenHelper
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
import com.mogo.och.weaknet.database.bean.ContrailDataBean
|
||||
@@ -24,7 +26,7 @@ import java.io.File
|
||||
//entities指定该数据库有哪些表,多张表就逗号分隔
|
||||
//version指定数据库版本号,升级时需要用到
|
||||
//数据库继承自RoomDatabase
|
||||
@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class], version = 1)
|
||||
@Database(entities = [ContrailDataBean::class, LineDataBean::class, SiteDataBean::class, TaskDataBean::class, TaskSiteDataBean::class, EventDataBean::class], version = 2)
|
||||
abstract class MyDataBase : RoomDatabase() {
|
||||
|
||||
|
||||
@@ -33,6 +35,7 @@ abstract class MyDataBase : RoomDatabase() {
|
||||
val instance: MyDataBase = Room.databaseBuilder(
|
||||
AbsMogoApplication.getApp()!!.applicationContext, MyDataBase::class.java, ROOT_PATH+DATABASE_NAME
|
||||
)
|
||||
.addMigrations(Migration1_2(1,2))
|
||||
.build()
|
||||
}
|
||||
|
||||
@@ -56,4 +59,10 @@ abstract class MyDataBase : RoomDatabase() {
|
||||
//结合单例模式完成数据库实例创建
|
||||
get() = SingleTon.instance
|
||||
}
|
||||
|
||||
class Migration1_2(val startVersion:Int,val endVersion:Int): Migration(startVersion,endVersion) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
database.execSQL("ALTER TABLE ${EventDataBean.evnetDataTable} ADD COLUMN driver_id INTEGER");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,6 +67,12 @@ data class EventDataBean(
|
||||
@ColumnInfo(name = "seq", typeAffinity = ColumnInfo.INTEGER)
|
||||
var seq: Int? = null,
|
||||
|
||||
/**
|
||||
* 站点排序
|
||||
*/
|
||||
@ColumnInfo(name = "driver_id", typeAffinity = ColumnInfo.INTEGER)
|
||||
var driverId: Long? = null,
|
||||
|
||||
/**
|
||||
* 存储此条数据时时间戳
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.och.weaknet.database.repository
|
||||
|
||||
import com.mogo.och.common.module.biz.login.LoginStatusManager
|
||||
import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager
|
||||
import com.mogo.och.common.module.utils.DateTimeUtil
|
||||
import com.mogo.och.weaknet.database.MyDataBase
|
||||
@@ -27,6 +28,7 @@ object EventRepository {
|
||||
event.taskStartTime = taskStartTime
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
DbThreadUtils.runInIoThread {
|
||||
@@ -52,6 +54,7 @@ object EventRepository {
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.siteId = siteId
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1
|
||||
event.seq = seq
|
||||
DbThreadUtils.runInIoThread {
|
||||
eventDataDao?.insert(event)
|
||||
@@ -75,6 +78,7 @@ object EventRepository {
|
||||
event.lineName = lineName
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.siteId = siteId
|
||||
event.seq = seq
|
||||
DbThreadUtils.runInIoThread {
|
||||
@@ -92,6 +96,7 @@ object EventRepository {
|
||||
event.taskStartTime = taskStartTime
|
||||
event.businessTime = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.writeVersion = DateTimeUtil.getCurrentTimeStamp()
|
||||
event.driverId = LoginStatusManager.getLoginInfo()?.driverId?:-1L
|
||||
event.siteId = 0L
|
||||
event.seq = 0
|
||||
DbThreadUtils.runInIoThread {
|
||||
|
||||
@@ -362,6 +362,7 @@ object OrderModel {
|
||||
*/
|
||||
private fun startAutopilot(isRestart: Boolean) {
|
||||
|
||||
val temp = initAutopilotControlParameters()
|
||||
/**
|
||||
* 存在Session
|
||||
*/
|
||||
@@ -767,7 +768,7 @@ object OrderModel {
|
||||
if(parameters==null){
|
||||
ToastUtils.showShort("未设置起始或终点站点")
|
||||
}
|
||||
return null
|
||||
return parameters
|
||||
}
|
||||
|
||||
fun setTrajectoryStation(isClean:Boolean) {
|
||||
|
||||
@@ -54,8 +54,6 @@ class RunningTaskManagerView: WindowRelativeLayout, RunningTastViewModel.Running
|
||||
}
|
||||
|
||||
private fun initView(){
|
||||
clLayout.setOnClickListener {
|
||||
}
|
||||
//关闭BadCase管理窗口
|
||||
ivTaskRunningClose.setOnClickListener {
|
||||
clickListener?.onClose()
|
||||
|
||||
@@ -33,8 +33,8 @@ class DebugViewModel : ViewModel(),
|
||||
}
|
||||
|
||||
override fun onSceneChanged(scene: Scene) {
|
||||
if (scene.isCanSwitch) {// 可切换
|
||||
when (scene.angle) {
|
||||
if (scene.isCanSwitch()) {// 可切换
|
||||
when (scene.getVisualAngleMode()) {
|
||||
VisualAngleMode.MODE_MEDIUM_SIGHT -> {
|
||||
UiThreadHandler.post({
|
||||
this.viewCallback?.setViewShow(true)
|
||||
@@ -76,9 +76,9 @@ class DebugViewModel : ViewModel(),
|
||||
CallerVisualAngleManager.getCurrentScene().let {
|
||||
val default = Default()
|
||||
|
||||
when (it.angle) {
|
||||
when (it.getVisualAngleMode()) {
|
||||
VisualAngleMode.MODE_MEDIUM_SIGHT -> {
|
||||
if(default.angle==VisualAngleMode.MODE_MEDIUM_SIGHT){
|
||||
if(default.getVisualAngleMode()==VisualAngleMode.MODE_MEDIUM_SIGHT){
|
||||
CallerVisualAngleManager.changeScene(LongSight())
|
||||
}
|
||||
}
|
||||
@@ -87,7 +87,7 @@ class DebugViewModel : ViewModel(),
|
||||
CallerVisualAngleManager.changeScene(Default())
|
||||
}
|
||||
VisualAngleMode.MAP_STYLE_VR_SKY_BOX -> {
|
||||
if(default.angle==VisualAngleMode.MAP_STYLE_VR_SKY_BOX){
|
||||
if(default.getVisualAngleMode()==VisualAngleMode.MAP_STYLE_VR_SKY_BOX){
|
||||
CallerVisualAngleManager.changeScene(LongSight())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
CallerFsm2024ListenerManager.addListener(TAG,this)
|
||||
CallerAutopilotStatisticsListenerManager.addListener(TAG,this)
|
||||
CallerOrderListenerManager.addListener(TAG,this)
|
||||
CallerAutoPilotStatusListenerManager.addListener(TAG,this)
|
||||
CallerAutoPilotStatusListenerManager.addListener("RecordViewManager",this)
|
||||
CallerChassisStatesListenerManager.addListener(TAG,this)
|
||||
}
|
||||
checkDelete(context)
|
||||
|
||||
@@ -152,7 +152,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
|
||||
override fun changeScene(scene: Scene) {
|
||||
prevJob?.safeCancel()
|
||||
scope.launch {
|
||||
val delay = scene.delay
|
||||
val delay = scene.getDelay()
|
||||
if (delay > 0) {
|
||||
delay(delay)
|
||||
}
|
||||
@@ -165,8 +165,8 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
|
||||
verifyPrior = false
|
||||
}
|
||||
if (verifyPrior) {
|
||||
val lastPriority = prev?.priority ?: Int.MIN_VALUE
|
||||
val currentPriority = scene.priority
|
||||
val lastPriority = prev?.getPriority() ?: Int.MIN_VALUE
|
||||
val currentPriority = scene.getPriority()
|
||||
if (lastPriority > currentPriority) {
|
||||
return@launch
|
||||
}
|
||||
@@ -182,18 +182,19 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
|
||||
}
|
||||
|
||||
private fun doChangeAngle(target: Scene) {
|
||||
val angle = target.angle
|
||||
val angle = target.getVisualAngleMode()
|
||||
CallerMapUIServiceManager.getMapUIController()?.also {
|
||||
Log.d(TAG, "--- doChangeAngle ---: $target")
|
||||
val prev = prevScene.get()
|
||||
try {
|
||||
if (!target.isCanTouch) {
|
||||
if (!target.isCanTouch()) {
|
||||
CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false)
|
||||
} else {
|
||||
CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true)
|
||||
}
|
||||
val screenToOriginDis = target.getScreenToOriginDis()
|
||||
when(screenToOriginDis) {
|
||||
ScreenToOriginDis.NONE -> {}
|
||||
DEFAULT -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(4.0f)
|
||||
UP -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(3.0f)
|
||||
DOWN -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(5.0f)
|
||||
@@ -206,9 +207,9 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
|
||||
notifyChanged(target)
|
||||
}
|
||||
prevScene.set(target)
|
||||
if (target.displayThreshold > 0) {
|
||||
if (target.getDisplayThreshold() > 0) {
|
||||
scope.launch {
|
||||
delay(target.displayThreshold)
|
||||
delay(target.getDisplayThreshold())
|
||||
doChangeAngle(Default())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
package com.mogo.eagle.core.function.angle.scenes
|
||||
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.map.angle.Scene
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DOWN
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.NONE
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS_NEW
|
||||
import java.util.concurrent.TimeUnit
|
||||
@@ -10,28 +13,32 @@ import java.util.concurrent.TimeUnit
|
||||
/**
|
||||
* 十字路口
|
||||
*/
|
||||
class CrossRoad(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene {
|
||||
override val angle: VisualAngleMode
|
||||
get() = MAP_STYLE_VR_ANGLE_CROSS_NEW
|
||||
class CrossRoad(private val delayTime: Long = 0, unit: TimeUnit = TimeUnit.SECONDS) :
|
||||
Scene(delayTime, unit) {
|
||||
|
||||
override val priority: Int = 0
|
||||
override val displayThreshold: Long
|
||||
get() = -1
|
||||
override fun getVisualAngleMode(): VisualAngleMode {
|
||||
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
return VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS
|
||||
}
|
||||
return MAP_STYLE_VR_ANGLE_CROSS_NEW
|
||||
}
|
||||
|
||||
override val delay: Long
|
||||
get() = unit.toMillis(delayTime)
|
||||
override fun isCanTouch(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override val isCanSwitch: Boolean
|
||||
get() = false
|
||||
|
||||
override val isCanTouch: Boolean
|
||||
get() = false
|
||||
override fun isCanSwitch(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "CrossRoad(delayTime=${delayTime}, priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority})"
|
||||
return "CrossRoad(delayTime=${delayTime}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()}, priority=${getPriority()})"
|
||||
}
|
||||
|
||||
override fun getScreenToOriginDis(): ScreenToOriginDis {
|
||||
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
return NONE
|
||||
}
|
||||
return DOWN
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,37 +1,29 @@
|
||||
package com.mogo.eagle.core.function.angle.scenes
|
||||
|
||||
import android.util.Log
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.map.angle.Scene
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* 默认视图
|
||||
* @param delay: 表示多少稍后,默认值为2
|
||||
* @param unit: 时间单位,默认为秒
|
||||
*/
|
||||
class Default(val delayTime: Long = 0, val unit: TimeUnit = TimeUnit.SECONDS, val forceClosePrev: Boolean = false): Scene(delayTime, unit) {
|
||||
|
||||
class Default(val delayTime: Long = 0, val unit: TimeUnit = TimeUnit.SECONDS, val forceClosePrev: Boolean = false): Scene {
|
||||
|
||||
override val angle: VisualAngleMode
|
||||
get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
|
||||
|
||||
override val priority: Int = 0
|
||||
|
||||
override val displayThreshold: Long
|
||||
get() = 0
|
||||
|
||||
override val delay: Long
|
||||
get() = unit.toMillis(delayTime)
|
||||
|
||||
override val isCanSwitch: Boolean
|
||||
get() = true
|
||||
|
||||
override val isCanTouch: Boolean
|
||||
get() = true
|
||||
override fun getVisualAngleMode(): VisualAngleMode {
|
||||
Log.d("Default", "---- 1 --------------")
|
||||
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
Log.d("Default", "---- 2 --------------")
|
||||
return VisualAngleMode.MAP_STYLE_VR_ERHAI_B2
|
||||
}
|
||||
return CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority, closePrevious=$forceClosePrev)"
|
||||
return "Default(delay=${getDelay()}, unit=$unit, angle=${getVisualAngleMode()}, priority=${getPriority()}, closePrevious=$forceClosePrev)"
|
||||
}
|
||||
}
|
||||
@@ -5,21 +5,13 @@ import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.MODE_LONG_SIGHT
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
class LongSight(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene {
|
||||
class LongSight(private val delayTime: Long = 0, private val unit: TimeUnit = TimeUnit.SECONDS): Scene(delayTime, unit) {
|
||||
|
||||
override val angle: VisualAngleMode
|
||||
get() = MODE_LONG_SIGHT
|
||||
override val priority: Int
|
||||
get() = 0
|
||||
override val displayThreshold: Long
|
||||
get() = -1
|
||||
override fun getVisualAngleMode(): VisualAngleMode {
|
||||
return MODE_LONG_SIGHT
|
||||
}
|
||||
|
||||
override val delay: Long
|
||||
get() = unit.toMillis(delayTime)
|
||||
|
||||
override val isCanSwitch: Boolean
|
||||
get() = true
|
||||
|
||||
override val isCanTouch: Boolean
|
||||
get() = true
|
||||
override fun toString(): String {
|
||||
return "LongSight(delayTime=${delayTime}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()}, priority=${getPriority()})"
|
||||
}
|
||||
}
|
||||
@@ -1,33 +1,27 @@
|
||||
package com.mogo.eagle.core.function.angle.scenes
|
||||
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.function.api.map.angle.Scene
|
||||
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.map.uicontroller.VisualAngleMode
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ERHAI_B2
|
||||
import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* 道路事件
|
||||
*/
|
||||
class RoadEvent(private val delayTime: Long, private val unit: TimeUnit): Scene {
|
||||
class RoadEvent(delayTime: Long, unit: TimeUnit): Scene(delayTime, unit) {
|
||||
|
||||
override val angle: VisualAngleMode = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
|
||||
|
||||
override val priority: Int = 0
|
||||
|
||||
override val displayThreshold: Long
|
||||
get() = -1
|
||||
|
||||
override val delay: Long
|
||||
get() = unit.toMillis(delayTime)
|
||||
|
||||
override fun toString(): String {
|
||||
return "RoadEvent(priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority}"
|
||||
override fun getVisualAngleMode(): VisualAngleMode {
|
||||
if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode)) {
|
||||
return MAP_STYLE_VR_ERHAI_B2
|
||||
}
|
||||
return CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT
|
||||
}
|
||||
|
||||
override val isCanSwitch: Boolean
|
||||
get() = true
|
||||
|
||||
override val isCanTouch: Boolean
|
||||
get() = true
|
||||
override fun toString(): String {
|
||||
return "RoadEvent(mode: ${getVisualAngleMode()}, priority=${getPriority()}, displayThreshold: ${getDisplayThreshold()},"
|
||||
}
|
||||
}
|
||||
@@ -8,18 +8,21 @@ import java.util.concurrent.TimeUnit
|
||||
/**
|
||||
* 漫游场景
|
||||
*/
|
||||
class Roma(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene {
|
||||
class Roma(val delayTime: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene(delayTime, unit) {
|
||||
|
||||
override val angle: VisualAngleMode
|
||||
get() = MAP_STYLE_VR_ROMA
|
||||
override val priority: Int
|
||||
get() = 1
|
||||
override val displayThreshold: Long
|
||||
get() = -1
|
||||
override val delay: Long
|
||||
get() = unit.toMillis(delayTime)
|
||||
override val isCanSwitch: Boolean
|
||||
get() = false
|
||||
override val isCanTouch: Boolean
|
||||
get() = false
|
||||
override fun getVisualAngleMode(): VisualAngleMode {
|
||||
return MAP_STYLE_VR_ROMA
|
||||
}
|
||||
|
||||
override fun isCanTouch(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun isCanSwitch(): Boolean {
|
||||
return false
|
||||
}
|
||||
|
||||
override fun getPriority(): Int {
|
||||
return 1
|
||||
}
|
||||
}
|
||||
@@ -2,23 +2,62 @@ package com.mogo.eagle.core.function.api.map.angle
|
||||
|
||||
import com.mogo.eagle.core.function.api.map.angle.ScreenToOriginDis.DEFAULT
|
||||
import com.mogo.map.uicontroller.*
|
||||
|
||||
interface IAttach {
|
||||
val angle: VisualAngleMode
|
||||
val priority: Int
|
||||
val displayThreshold: Long //最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值,
|
||||
val delay: Long // 延迟多长时间切换
|
||||
val isCanSwitch: Boolean // 是否可切换
|
||||
val isCanTouch: Boolean // 是否响应地图触摸事件
|
||||
|
||||
fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT
|
||||
}
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
enum class ScreenToOriginDis {
|
||||
DEFAULT,
|
||||
UP,
|
||||
DOWN
|
||||
NONE,
|
||||
DEFAULT,
|
||||
UP,
|
||||
DOWN
|
||||
}
|
||||
|
||||
interface Scene: IAttach
|
||||
abstract class Scene(private val delay: Long, private val unit: TimeUnit = TimeUnit.SECONDS) {
|
||||
|
||||
/**
|
||||
* 获取当前视角场景的视角类型,此返回值要与地图支持的视角类型匹配
|
||||
*/
|
||||
abstract fun getVisualAngleMode(): VisualAngleMode
|
||||
|
||||
/**
|
||||
* 当前视角场景的优先级,优先级越高,表示可以打断优先级低的视角场景
|
||||
*/
|
||||
open fun getPriority(): Int = 0
|
||||
|
||||
/**
|
||||
* 单位:(毫秒)
|
||||
* 表示多长时间之后切换到当前视角场景
|
||||
*/
|
||||
final fun getDelay(): Long = unit.toMillis(delay)
|
||||
|
||||
/**
|
||||
* 单位:(毫秒)
|
||||
* 最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值,
|
||||
* @return
|
||||
* 大于0: 此场景对应的视角展示指定时长后,自动切换到默认视角场景
|
||||
* 小于0: 一直展示此场景的视角,直到比此场景优先级:[getPriority]更高的场景触发时,才会终止
|
||||
*/
|
||||
open fun getDisplayThreshold(): Long = 0
|
||||
|
||||
/**
|
||||
* 用于业务层视角切换按钮的使能状态
|
||||
* @return true: 可以切换; false:不可以切换
|
||||
*/
|
||||
open fun isCanSwitch(): Boolean = true
|
||||
|
||||
/**
|
||||
* 用于控制高精地图控件(MapAutoView)是否禁掉所有手势
|
||||
* @return true: 响应地图控件的触摸事件及手势;false:不响应地图控件的触摸事件及手势
|
||||
*/
|
||||
open fun isCanTouch(): Boolean = true
|
||||
|
||||
/**
|
||||
* 返回自车相对于地图控件的位置
|
||||
* @return
|
||||
* 1. [ScreenToOriginDis.NONE]: 不设置
|
||||
* 2. [ScreenToOriginDis.DEFAULT]: 默认的位置
|
||||
* 3. [ScreenToOriginDis.UP]: 偏上
|
||||
* 4. [ScreenToOriginDis.DOWN]: 偏下
|
||||
*/
|
||||
open fun getScreenToOriginDis(): ScreenToOriginDis = DEFAULT
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.mogo.commons.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import androidx.annotation.Keep
|
||||
import androidx.collection.ArrayMap
|
||||
import com.elegant.analytics.Analytics
|
||||
@@ -15,7 +18,10 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.AppUtils
|
||||
import com.mogo.eagle.core.utilcode.util.DateTimeUtils
|
||||
import com.mogo.eagle.core.utilcode.util.NetworkUtils
|
||||
import com.mogo.eagle.core.utilcode.util.ThreadUtils
|
||||
import com.mogo.eagle.core.utilcode.util.Utils
|
||||
import org.json.JSONObject
|
||||
import java.util.TimerTask
|
||||
|
||||
/**
|
||||
* 埋点&数据统计 管理
|
||||
@@ -23,6 +29,23 @@ import org.json.JSONObject
|
||||
*/
|
||||
object MogoAnalyticUtils {
|
||||
|
||||
var network_is_available = false
|
||||
|
||||
private val handler = Handler(Looper.getMainLooper())
|
||||
private val runnable = object : Runnable {
|
||||
override fun run() {
|
||||
NetworkUtils.isAvailableByPingAsync("49.233.99.26", object : Utils.Consumer<Boolean> {
|
||||
override fun accept(isAvailable: Boolean) {
|
||||
network_is_available = isAvailable
|
||||
}
|
||||
})
|
||||
// 这里执行你的任务
|
||||
// 重新安排下一个任务
|
||||
handler.postDelayed(this, 5000) // 每隔5秒执行一次
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Keep
|
||||
fun init(context: Context?, isDebug: Boolean) {
|
||||
// 1 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。
|
||||
@@ -44,6 +67,9 @@ object MogoAnalyticUtils {
|
||||
}
|
||||
}
|
||||
Analytics.getInstance().start(context)
|
||||
|
||||
// 启动定时任务
|
||||
handler.post(runnable)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -54,12 +80,24 @@ object MogoAnalyticUtils {
|
||||
*/
|
||||
fun track(event: String?, properties: MutableMap<String, Any>) {
|
||||
try {
|
||||
properties["network_type"] = NetworkUtils.getNetworkType()
|
||||
// 自动驾驶工控机相关信息
|
||||
properties["plate_number"] = AppConfigInfo.plateNumber
|
||||
properties["docker_version"] = AppConfigInfo.dockerVersion
|
||||
properties["ipc_mac_address"] = AppConfigInfo.iPCMacAddress
|
||||
properties["protocol_version_number"] = AppConfigInfo.protocolVersionNumber
|
||||
properties["ad_hd_map_version"] = AppConfigInfo.adHdMapVersion
|
||||
properties["car_type"] =
|
||||
AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name
|
||||
|
||||
|
||||
// 网络状态监听
|
||||
properties["network_address"] = NetworkUtils.getIPAddress(true)
|
||||
properties["network_type"] = NetworkUtils.getNetworkType().name
|
||||
properties["network_ssid"] = NetworkUtils.getSSID()
|
||||
properties["network_wifi_enabled "] = NetworkUtils.getWifiEnabled()
|
||||
properties["network_is_available"] = NetworkUtils.isAvailable()
|
||||
properties["network_is_available_by_ping"] = NetworkUtils.isAvailableByPing("49.233.99.26")
|
||||
properties["network_is_available"] = network_is_available
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
properties["network_type"] = "获取设备网络状态错误"
|
||||
}
|
||||
Analytics.getInstance().track(event, properties)
|
||||
@@ -106,14 +144,6 @@ object MogoAnalyticUtils {
|
||||
AppIdentityModeUtils.getProduct(FunctionBuildConfig.appIdentityMode).name
|
||||
map["time"] = DateTimeUtils.getTimeText(DateTimeUtils.yyyy_MM_dd_HH_mm_ss_SSS)
|
||||
|
||||
// 自动驾驶工控机相关信息
|
||||
map["plate_number"] = AppConfigInfo.plateNumber
|
||||
map["docker_version"] = AppConfigInfo.dockerVersion
|
||||
map["ipc_mac_address"] = AppConfigInfo.iPCMacAddress
|
||||
map["protocol_version_number"] = AppConfigInfo.protocolVersionNumber
|
||||
map["ad_hd_map_version"] = AppConfigInfo.adHdMapVersion
|
||||
map["car_type"] = AppIdentityModeUtils.getCarType(FunctionBuildConfig.appIdentityMode).name
|
||||
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ object HDMapUtils {
|
||||
// map["0335"] = 1303 //秦皇岛市
|
||||
// map["0310"] = 1304 //邯郸市
|
||||
// map["0319"] = 1305 //邢台市
|
||||
// map["0312"] = 1306 //保定市
|
||||
map["0312"] = 1306 //保定市
|
||||
// map["0313"] = 1307 //张家口市
|
||||
// map["0314"] = 1308 //承德市
|
||||
// map["0317"] = 1309 //沧州市
|
||||
@@ -124,7 +124,7 @@ object HDMapUtils {
|
||||
// map["0578"] = 3311 //丽水市
|
||||
|
||||
//安徽
|
||||
// map["0551"] = 3401 //合肥市
|
||||
map["0551"] = 3401 //合肥市
|
||||
// map["0553"] = 3402 //芜湖市
|
||||
// map["0552"] = 3403 //蚌埠市
|
||||
// map["0554"] = 3404 //淮南市
|
||||
@@ -166,7 +166,7 @@ object HDMapUtils {
|
||||
// map["0793"] = 3611 //上饶市
|
||||
|
||||
//山东
|
||||
// map["0531"] = 3701 //济南市
|
||||
map["0531"] = 3701 //济南市
|
||||
// map["0532"] = 3702 //青岛市
|
||||
// map["0533"] = 3703 //淄博市
|
||||
// map["0632"] = 3704 //枣庄市
|
||||
@@ -204,7 +204,7 @@ object HDMapUtils {
|
||||
|
||||
//湖北
|
||||
// map["0714"] = 4202 //黄石市
|
||||
// map["0719"] = 4203 //十堰市
|
||||
map["0719"] = 4203 //十堰市
|
||||
// map["0717"] = 4205 //宜昌市
|
||||
// map["0710"] = 4206 //襄阳市
|
||||
map["0711"] = 4207 //鄂州市
|
||||
@@ -217,7 +217,7 @@ object HDMapUtils {
|
||||
// map["0718"] = 4228 //恩施土家族苗族自治州
|
||||
|
||||
//湖南
|
||||
// map["0731"] = 4301 //长沙市
|
||||
map["0731"] = 4301 //长沙市
|
||||
map["0733"] = 4302 //株洲市
|
||||
// map["0732"] = 4303 //湘潭市
|
||||
map["0734"] = 4304 //衡阳市
|
||||
@@ -256,7 +256,7 @@ object HDMapUtils {
|
||||
|
||||
//广西
|
||||
map["0771"] = 4501 //南宁市
|
||||
// map["0772"] = 4502 //柳州市
|
||||
map["0772"] = 4502 //柳州市
|
||||
// map["0773"] = 4503 //桂林市
|
||||
// map["0774"] = 4504 //梧州市
|
||||
// map["0779"] = 4505 //北海市
|
||||
@@ -271,8 +271,8 @@ object HDMapUtils {
|
||||
// map["1771"] = 4514 //崇左市
|
||||
|
||||
//海南
|
||||
// map["0898"] = 4601 //海口市
|
||||
// map["0899"] = 4602 //三亚市
|
||||
map["0898"] = 4601 //海口市
|
||||
map["0899"] = 4602 //三亚市
|
||||
// map["2898"] = 4603 //三沙市
|
||||
// map["0805"] = 4604 //儋州市
|
||||
|
||||
@@ -356,6 +356,7 @@ object HDMapUtils {
|
||||
|
||||
//青海
|
||||
map["0971"] = 6301 //西宁市
|
||||
map["0974"] = 6325 //海南藏族自治州
|
||||
// map["0972"] = 6302 //海东市
|
||||
|
||||
//宁夏
|
||||
|
||||
Reference in New Issue
Block a user