diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index 08609c5556..b185e1543e 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -66,6 +66,13 @@ object DataManager { mutableListOf() } + /** + * FSM消息(缓存数据库时使用) + */ + private val fmInfoList by lazy { + mutableListOf() + } + private val scope by lazy { Utils.getApp().lifeCycleScope } @@ -122,6 +129,12 @@ object DataManager { } CallerMsgBoxListenerManager.invokeListener(MsgCategory.NOTICE, msg) } + MsgBoxType.FMINFO -> { + CallerMsgBoxListenerManager.invokeListener(MsgCategory.FM_INFO, msg) + } + MsgBoxType.VOICE -> { + CallerMsgBoxListenerManager.invokeListener(MsgCategory.VOICE_INFO, msg) + } MsgBoxType.OBU, MsgBoxType.NOTICE, MsgBoxType.OPERATION -> { synchronized(this) { notifyList.add(msg) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt index aa4cf8ea67..815211ef05 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt @@ -21,23 +21,23 @@ class DynamicConfigImpl: IDynamicConfig { } override fun get(key: String?, defStr: String?): String { - return "" + return defStr ?: "" } override fun get(key: String?, defInt: Int): Int { - return 0 + return defInt } override fun get(key: String?, defLong: Long): Long { - return 0L + return defLong } override fun get(key: String?, defBool: Boolean): Boolean { - return false + return true } override fun get(key: String?, defFloat: Float): Float { - return 0f + return defFloat } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangAnalyticUtils.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangAnalyticUtils.kt index 1214c246a3..c7acda810c 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangAnalyticUtils.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangAnalyticUtils.kt @@ -11,31 +11,51 @@ internal class MoFangAnalyticUtils { // 魔方连接状态 const val EVENT_MOFANG_CONNECT = "event_mofang_connect" - const val EVENT_SUB_START_CONNECT = "event_sub_start_connect" - const val EVENT_SUB_CONNECT_SUCCESS = "event_sub_connect_success" - const val EVENT_SUB_START_DISCONNECT = "event_sub_start_disconnect" - const val EVENT_SUB_DISCONNECT_SUCCESS = "event_sub_disconnect_success" - const val EVENT_SUB_DISCONNECT_SLEEP = "event_sub_disconnect_sleep" - const val EVENT_SUB_BLUETOOTH_SETTING_REQ = "event_sub_ble_set_req" - const val EVENT_SUB_BLUETOOTH_OPEN_DENY = "event_sub_ble_open_deny" - const val EVENT_SUB_BLUETOOTH_OPEN_AGREE = "event_sub_ble_open_agree" - const val EVENT_SUB_IS_VALID = "event_sub_is_ipt_valid" - const val EVENT_SUB_IS_INVALID = "event_sub_is_ipt_invalid" + const val EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT = "event_sub_start_connect" + const val EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS = "event_sub_connect_success" + const val EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT = "event_sub_start_disconnect" + const val EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS = "event_sub_disconnect_success" + const val EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP = "event_sub_disconnect_sleep" + const val EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ = "event_sub_ble_set_req" + const val EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY = "event_sub_ble_open_deny" + const val EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE = "event_sub_ble_open_agree" + const val EVENT_MOFANG_CONNECT_PARAMS_IS_VALID = "event_sub_is_ipt_valid" + const val EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID = "event_sub_is_ipt_invalid" // 魔方电量 const val EVENT_BATTERY = "event_mofang_battery" - const val EVENT_BATTERY_VALUE = "battery" + const val EVENT_BATTERY_PARAMS_VALUE = "battery" + const val EVENT_BATTERY_PARAMS_DUR = "dur" // 收到魔方按键指令 const val EVENT_INPUT = "event_mofang_input" - const val EVENT_INPUT_SUB_KEYCODE = "keycode" - const val EVENT_INPUT_SUB_TYPE = "input_type" // 1:单击,2:长按, 3:组合键 + const val EVENT_INPUT_PARAMS_KEYCODE = "keycode" + const val EVENT_INPUT_PARAMS_TYPE = "input_type" // 1:单击,2:长按, 3:组合键 // 执行魔方按键指令 const val EVENT_EXECUTE = "event_mofang_execute" - const val EVENT_EXECUTE_SUB_KEYCODE = "keycode" - const val EVENT_EXECUTE_SUB_TYPE = "input_type" // 1:单击,2:长按, 3:组合键 + const val EVENT_EXECUTE_PARAMS_KEYCODE = "keycode" + const val EVENT_EXECUTE_PARAMS_TYPE = "input_type" // 1:单击,2:长按, 3:组合键 + const val EVENT_EXECUTE_PARAMS_LON = "lon" // 执行时自车经度 + const val EVENT_EXECUTE_PARAMS_LAT = "lat" // 执行时自车纬度 + const val EVENT_EXECUTE_PARAMS_SPEED = "speed" // 执行时自车速度 + const val EVENT_EXECUTE_PARAMS_ACC = "acc" // 执行时自车加速度 + const val EVENT_EXECUTE_PARAMS_HEADING = "head" // 执行时自车航向角 + const val EVENT_EXECUTE_PARAMS_LINE_ID = "line_id" // 执行时的路线id + + + // 魔方按键指令回执 + const val EVENT_EXECUTE_FEEDBACK = "event_mofang_feedback" + const val EVENT_EXECUTE_FEEDBACK_PARAMS_CODE = "code" + const val EVENT_EXECUTE_FEEDBACK_PARAMS_MSG = "msg" + const val EVENT_EXECUTE_FEEDBACK_PARAMS_LON = "lon" // 执行时自车经度 + const val EVENT_EXECUTE_FEEDBACK_PARAMS_LAT = "lat" // 执行时自车纬度 + const val EVENT_EXECUTE_FEEDBACK_PARAMS_SPEED = "speed" // 执行时自车速度 + const val EVENT_EXECUTE_FEEDBACK_PARAMS_ACC = "acc" // 执行时自车加速度 + const val EVENT_EXECUTE_FEEDBACK_PARAMS_HEADING = "head" // 执行时自车航向角 + const val EVENT_EXECUTE_FEEDBACK_PARAMS_LINE_ID = "line_id" // 执行时的路线id + private val handler by lazy { HandlerThread("mofang-analytic-worker", Process.THREAD_PRIORITY_BACKGROUND).let { it.start(); Handler(it.looper) } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt index b187dba488..671928a546 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangCommandExecutor.kt @@ -8,8 +8,14 @@ import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.network.utils.GsonUtil import com.mogo.eagle.core.utilcode.mogo.* import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_KEYCODE -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_SUB_TYPE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_ACC +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_HEADING +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_KEYCODE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LAT +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LINE_ID +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_LON +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_SPEED +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_EXECUTE_PARAMS_TYPE internal class MoFangCommandExecutor { @@ -35,6 +41,7 @@ internal class MoFangCommandExecutor { private val handlerCallback = Handler.Callback { msg -> val message = whatToString(msg.what, ", msg_info:[obj:${msg.obj}, arg1: ${msg.arg1}, arg2: ${msg.arg2}]") linkedLog?.record(mapOf("收到:${System.currentTimeMillis()}" to "$message")) + val location = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() when(msg.what) { MSG_WHAT_KEY_CODE_A, MSG_WHAT_KEY_CODE_B, MSG_WHAT_KEY_CODE_AB, MSG_WHAT_KEY_CODE_AL -> { var send = false @@ -42,7 +49,16 @@ internal class MoFangCommandExecutor { val acc = msg.obj as? Double if (acc != null) { send = acc != 0.0 - MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: ""))) + MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf( + EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_LON to location.longitude, + EVENT_EXECUTE_PARAMS_LAT to location.latitude, + EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed, + EVENT_EXECUTE_PARAMS_ACC to location.acceleration, + EVENT_EXECUTE_PARAMS_HEADING to location.heading, + EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId() + )) linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $acc")) CallerAutoPilotControlManager.sendOperatorSetAcceleratedSpeed(acc) } @@ -61,7 +77,16 @@ internal class MoFangCommandExecutor { return@Callback true } val isLeft = msg.arg1 == -1 - MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: ""))) + MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf( + EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_LON to location.longitude, + EVENT_EXECUTE_PARAMS_LAT to location.latitude, + EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed, + EVENT_EXECUTE_PARAMS_ACC to location.acceleration, + EVENT_EXECUTE_PARAMS_HEADING to location.heading, + EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId() + )) if (isLeft) { linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message")) Log.d(TAG, "--- 左变道执行了 ----") @@ -81,7 +106,16 @@ internal class MoFangCommandExecutor { val autoPilotStatusInfo = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo() val parameters = autoPilotStatusInfo.autopilotControlParameters val json = GsonUtil.jsonFromObject(parameters) - MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: ""))) + MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf( + EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_LON to location.longitude, + EVENT_EXECUTE_PARAMS_LAT to location.latitude, + EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed, + EVENT_EXECUTE_PARAMS_ACC to location.acceleration, + EVENT_EXECUTE_PARAMS_HEADING to location.heading, + EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId() + )) linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $json")) Log.d(TAG, "--- 启动自驾 ----入参:$json") //清扫车有FSM模块,魔方启动自驾时需要将Source修改为魔方,以便telamatics做区分并在转发时增加flag标记 @@ -103,7 +137,16 @@ internal class MoFangCommandExecutor { if (value != null && value != 0.0) { send = value != 2.0 Log.d(TAG, "--- 长按鸣笛 ---入参:$value") - MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf(EVENT_EXECUTE_SUB_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), EVENT_EXECUTE_SUB_TYPE to (getInputTypeByWhat(msg.what) ?: ""))) + MoFangAnalyticUtils.track(EVENT_EXECUTE, mutableMapOf( + EVENT_EXECUTE_PARAMS_KEYCODE to (getKeycodeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_TYPE to (getInputTypeByWhat(msg.what) ?: ""), + EVENT_EXECUTE_PARAMS_LON to location.longitude, + EVENT_EXECUTE_PARAMS_LAT to location.latitude, + EVENT_EXECUTE_PARAMS_SPEED to location.gnssSpeed, + EVENT_EXECUTE_PARAMS_ACC to location.acceleration, + EVENT_EXECUTE_PARAMS_HEADING to location.heading, + EVENT_EXECUTE_PARAMS_LINE_ID to CallerAutoPilotStatusListenerManager.getLineId() + )) linkedLog?.record(mapOf("执行:${System.currentTimeMillis()}" to "$message, $value")) CallerAutoPilotControlManager.sendOperatorSetHorn(value) } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt index 309972293c..96e995ac69 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoGoMoFangProviderImpl.kt @@ -5,6 +5,7 @@ import android.app.* import android.bluetooth.* import android.graphics.* import android.graphics.drawable.ColorDrawable +import android.os.SystemClock import android.util.* import android.view.* import android.view.Window.Callback @@ -23,21 +24,22 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.util.* import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_VALUE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_PARAMS_DUR +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_BATTERY_PARAMS_VALUE import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_SUB_KEYCODE -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_SUB_TYPE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_PARAMS_KEYCODE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_INPUT_PARAMS_TYPE import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_OPEN_AGREE -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_OPEN_DENY -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_BLUETOOTH_SETTING_REQ -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_CONNECT_SUCCESS -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_DISCONNECT_SLEEP -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_DISCONNECT_SUCCESS -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_IS_INVALID -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_IS_VALID -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_START_CONNECT -import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_SUB_START_DISCONNECT +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_IS_VALID +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT +import com.zhjt.mogo_core_function_devatools.mofang.MoFangAnalyticUtils.Companion.EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT import kotlinx.coroutines.* import me.jessyan.autosize.utils.AutoSizeUtils import java.util.concurrent.ConcurrentHashMap @@ -63,6 +65,8 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen private var job: Job? = null + private var batteryTime : Long = -1 + override fun enableTest(enable: Boolean) { isTest.set(enable) SPUtils.getInstance().put(SP_KEY_TEST_ENABLE, enable) @@ -85,7 +89,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } override fun onBluetoothStartConnect() { - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_START_CONNECT to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_START_CONNECT to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("connect" to "real-start")) } @@ -102,7 +106,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen override fun disconnect() { try { - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_START_DISCONNECT to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_START_DISCONNECT to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("disconnect" to "start")) MoFangManager.disconnect() linkedLog.record(mapOf("disconnect" to "success")) @@ -142,7 +146,13 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen override fun onBluetoothBatteryChanged(battery: Int) { linkedLog.record(mapOf("callback" to "onBluetoothBatteryChanged:$battery")) - MoFangAnalyticUtils.track(EVENT_BATTERY, mutableMapOf(EVENT_BATTERY_VALUE to "$battery")) + val now = SystemClock.elapsedRealtime() + val dur = if (batteryTime < 0) 0 else (now - batteryTime) + batteryTime = now + MoFangAnalyticUtils.track(EVENT_BATTERY, mutableMapOf( + EVENT_BATTERY_PARAMS_VALUE to "$battery", + EVENT_BATTERY_PARAMS_DUR to dur + )) UiThreadHandler.post { listeners.values.forEach { it.onMoFangBatteryChanged(battery) @@ -157,7 +167,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } catch (t: Throwable) { t.printStackTrace() } - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_CONNECT_SUCCESS to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_CONNECT_SUCCESS to "${System.currentTimeMillis()}")) UiThreadHandler.post { listeners.values.forEach { it.onMoFangConnected() @@ -172,7 +182,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen } catch (t: Throwable) { t.printStackTrace() } - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_DISCONNECT_SUCCESS to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SUCCESS to "${System.currentTimeMillis()}")) UiThreadHandler.post { listeners.values.forEach { it.onMoFangDisconnected() @@ -186,7 +196,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen showToast("[$keycodesText]") } try { - MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keycodesText, EVENT_INPUT_SUB_TYPE to "3")) + MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keycodesText, EVENT_INPUT_PARAMS_TYPE to "3")) linkedLog.record(mapOf("command" to "combine_clicked: $keycodesText")) executor.handleCombineClick(*keyCodes) } finally { @@ -202,7 +212,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen showToast("[$key$key]") } try { - MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keyCode.toString(), EVENT_INPUT_SUB_TYPE to "2")) + MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keyCode.toString(), EVENT_INPUT_PARAMS_TYPE to "2")) linkedLog.record(mapOf("command" to "long_clicked: ${ KeyEvent.keyCodeToString(keyCode) }")) executor.handleLongClick(keyCode) } finally { @@ -220,7 +230,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen showToast("[${keycodeText.replace("KEYCODE_", "", true)}]") } try { - MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_SUB_KEYCODE to keyCode.toString(), EVENT_INPUT_SUB_TYPE to "1")) + MoFangAnalyticUtils.track(EVENT_INPUT, mutableMapOf(EVENT_INPUT_PARAMS_KEYCODE to keyCode.toString(), EVENT_INPUT_PARAMS_TYPE to "1")) linkedLog.record(mapOf("command" to "clicked: $keycodeText")) executor.handleSingleClick(keyCode) } finally { @@ -269,7 +279,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen override fun onBluetoothKeyboardInputInvalid() { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardInputInvalid ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_IS_INVALID to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_IS_INVALID to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothKeyboardInputInvalid")) UiThreadHandler.post { listeners.values.forEach { @@ -280,25 +290,25 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen override fun onBluetoothKeyboardInputValid() { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardInputValid ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_IS_VALID to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_IS_VALID to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothKeyboardInputValid")) } override fun onBluetoothOpenAgreed() { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothOpenAgreed ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_OPEN_AGREE to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_OPEN_AGREE to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothOpenAgreed")) } override fun onBluetoothOpenDenied() { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothOpenDenied ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_OPEN_DENY to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_OPEN_DENY to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothOpenDenied")) } override fun onBluetoothSettingRequest() { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothSettingRequest ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_BLUETOOTH_SETTING_REQ to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_SETTING_REQ to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothSettingRequest")) UiThreadHandler.post { Toast.makeText(Utils.getApp(), "检测到魔方未正确连接,请在系统蓝牙设置页面,找到魔方并配对连接...", Toast.LENGTH_SHORT).show() @@ -307,7 +317,7 @@ internal class MoGoMoFangProviderImpl: IMoGoMoFangProvider, OnMoFangDeviceListen override fun onBluetoothKeyboardAbnormalDisconnected(status: Int) { CallerLogger.d(M_DEVA+TAG, "--- onBluetoothKeyboardAbnormalDisconnected(status: $status) ---") - MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_SUB_DISCONNECT_SLEEP to "${System.currentTimeMillis()}")) + MoFangAnalyticUtils.track(EVENT_MOFANG_CONNECT, mutableMapOf(EVENT_MOFANG_CONNECT_PARAMS_DISCONNECT_SLEEP to "${System.currentTimeMillis()}")) linkedLog.record(mapOf("callback" to "onBluetoothKeyboardAbnormalDisconnected:$status")) } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/FMInfoMsg.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/FMInfoMsg.kt new file mode 100644 index 0000000000..1cf28fc5b6 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/FMInfoMsg.kt @@ -0,0 +1,16 @@ +package com.mogo.eagle.core.data.msgbox + +import java.io.Serializable + +/** + * FM数据的类型 + */ +data class FMInfoMsg( + var level: Int,// 级别 + var faultName: String?,// 故障名称 + var timeStamp: Long,// 接收消息的时间戳 + var faultResult: String?,// 故障后果 + var faultId: String?,// 故障码(ID) + var policyCode: String?,//故障策略 + var faultAction: String?// 建议操作 +) : Serializable \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt index 4848a3300c..d96f98507c 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.data.msgbox enum class MsgBoxType { - // 按功能划分为几大类:运营、通知、V2X模块、OBU模块、工控机Report、录制、交通等 - OPERATION, NOTICE, V2X, OBU, REPORT, RECORD, TRAFFIC + // 按功能划分为几大类:运营、通知、V2X模块、OBU模块、工控机Report、录制、交通、FM、语音等 + OPERATION, NOTICE, V2X, OBU, REPORT, RECORD, TRAFFIC, FMINFO, VOICE } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt index e89b9032f4..9b9b0361c5 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.data.msgbox enum class MsgCategory { - // 按UI展示划分为三大类:通知、系统信息、录制 - NOTICE, SYS_INFO, RECORD_BAG + // 按UI展示划分为三大类:通知、系统信息、录制、FM消息、语音(如小智) + NOTICE, SYS_INFO, RECORD_BAG, FM_INFO, VOICE_INFO } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/VoiceMsg.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/VoiceMsg.kt new file mode 100644 index 0000000000..3a5bab65c0 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/VoiceMsg.kt @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.data.msgbox + +/** + * ASR识别后传输的数据结构 + */ +data class VoiceMsg( + var isWakeUp: Boolean,// 是否是唤醒事件,false代表正常语音识别后的字符串 + var isWakeUpEnd: Boolean,// 是否是唤醒的结束事件,反之为开始事件 + var msg: String?,// 消息 + var isLastMsg: Boolean,// 是否是最后一条消息 + var isResp: Boolean// false:用户说的,true:表示反馈 +) \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/common/ConstantExt.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/common/ConstantExt.kt index 49beb3147f..71ea76d336 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/common/ConstantExt.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/inner/common/ConstantExt.kt @@ -86,11 +86,11 @@ object ConstantExt { //VR模式下的洱海默认视角 角度 - const val MAP_STYLE_VR_OVER_LOOK_ANGLE_ERHAI = 13f + const val MAP_STYLE_VR_OVER_LOOK_ANGLE_ERHAI = 12f //VR模式下的洱海默认视角 缩放值 const val MAP_STYLE_VR_ZOOM_VAL_ERHAI = 1f //VR模式下的洱海默认视角 高度 - const val MAP_STYLE_VR_EYE_HEIGHT_ERHAI = 15f + const val MAP_STYLE_VR_EYE_HEIGHT_ERHAI = 18f //后方来车300米视角 高度