From d17c29d04850af21eb5a0ee2ab9d8d666e336788 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Mon, 13 Feb 2023 20:08:39 +0800 Subject: [PATCH 01/14] =?UTF-8?q?[M2]=20M2=20UI=20=E7=BA=A2=E7=BB=BF?= =?UTF-8?q?=E7=81=AF=EF=BC=8C=E5=9C=B0=E5=9B=BE=E6=A0=B7=E5=BC=8F=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/m2/assets/m2_map_style.data | Bin 0 -> 89065 bytes .../src/m2/assets/m2_map_style_extra.data | Bin 0 -> 21038 bytes .../bus/passenger/model/PM2DrivingModel.kt | 2 +- .../presenter/PM2DrivingPresenter.kt | 8 +- .../passenger/ui/PM2DrivingInfoFragment.kt | 27 ++- .../ui/widget/M2PTrafficLightView.kt | 179 ++++++++++++++++++ .../res/drawable-nodpi/m2_light_green_nor.png | Bin 0 -> 3417 bytes .../res/drawable-nodpi/m2_light_red_nor.png | Bin 0 -> 2909 bytes .../drawable-nodpi/m2_light_yellow_nor.png | Bin 0 -> 3925 bytes .../m2/res/layout/m2_p_traffic_light_view.xml | 37 ++++ .../res/layout/p_m2_driving_info_fragment.xml | 49 +++-- .../src/m2/res/values/colors.xml | 2 + .../src/m2/res/values/dimens.xml | 60 +----- .../src/m2/res/values/strings.xml | 9 +- 14 files changed, 284 insertions(+), 89 deletions(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style.data create mode 100644 OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style_extra.data create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2PTrafficLightView.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_green_nor.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_red_nor.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_yellow_nor.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/layout/m2_p_traffic_light_view.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style.data b/OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style.data new file mode 100644 index 0000000000000000000000000000000000000000..4e4bb6709d314ea403c29089ce8449c5ac1d9dff GIT binary patch literal 89065 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 o*OT^rwm0r?(!R;|C++)kpF literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style_extra.data b/OCH/mogo-och-bus-passenger/src/m2/assets/m2_map_style_extra.data new file mode 100644 index 0000000000000000000000000000000000000000..3ce2c92d118914c6e5a667508d4023bce5c72ab6 GIT binary patch literal 21038 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 t(9?-2f-NGT`)-8N6FC{a=2!=L~F literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 3b05d79aa0..e5dd305e5b 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -159,7 +159,7 @@ class PM2DrivingModel private constructor() { object : OchCommonServiceCallback { override fun onSuccess(data: PM2OperationStatusResponse?) { if (data?.data == null) return - mDrivingInfoCallback?.changeOperationStatus(data.data.driverStatus === 1) + mDrivingInfoCallback?.changeOperationStatus(data.data.driverStatus == 1) mDrivingInfoCallback?.updatePlateNumber(data.data.plateNumber) } diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index 825ee65c8d..1c9f06a422 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -54,11 +54,15 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } override fun changeOperationStatus(loginStatus: Boolean) { - TODO("Not yet implemented") + UiThreadHandler.post { + mView?.changeOperationStatus(loginStatus) + } } override fun showNoTaskView(isTrue: Boolean) { - TODO("Not yet implemented") + UiThreadHandler.post { + mView?.showNoTaskView(!isTrue) + } } override fun updateAutoStatus(isOpen: Boolean) { diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index d7dcdd3041..9b8c4737c8 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -1,12 +1,12 @@ package com.mogo.och.bus.passenger.ui import android.os.Bundle +import android.view.View import androidx.core.content.ContextCompat import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter -import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.DateTimeUtil.* import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* @@ -30,6 +30,7 @@ class PM2DrivingInfoFragment : } override fun initViews() { + updateCurrentTime() } override fun initViews(savedInstanceState: Bundle?) { @@ -61,14 +62,14 @@ class PM2DrivingInfoFragment : } fun updateTaskName(name: String){ - task_name_tv.text = name + line_name_tv.text = name } fun updateTaskDuringTime(time : String){ - task_during_tv.text = time + line_during_tv.text = time } - fun updateCurrentTime(){ + private fun updateCurrentTime(){ current_time_tv.text = formatCalendarToString( DateTimeUtils.getCurrentDateTime(),HH_mm) @@ -76,15 +77,27 @@ class PM2DrivingInfoFragment : DateTimeUtils.getCurrentDateTime(), yyyy_MM_dd) val weekDay = DateTimeUtils.getWeekDayFromCalendar1(DateTimeUtils.getCurrentDateTime()) current_weekday_tv.text = "$date $weekDay" - + } fun changeOperationStatus(status:Boolean){ - if (!status){ //暂无路线 + setLineInfoView(status) + } + fun showNoTaskView(haveTask: Boolean){ + setLineInfoView(haveTask) + } + + private fun setLineInfoView(isShow: Boolean){ + if (isShow){ + line_name_tv.visibility = View.VISIBLE + line_during_tv.visibility = View.VISIBLE + no_line_tv.visibility = View.GONE }else{ - + line_name_tv.visibility = View.GONE + line_during_tv.visibility = View.GONE + no_line_tv.visibility = View.VISIBLE } } diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2PTrafficLightView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2PTrafficLightView.kt new file mode 100644 index 0000000000..44bf647750 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2PTrafficLightView.kt @@ -0,0 +1,179 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.widget.LinearLayout +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.enums.TrafficLightEnum +import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.m2.m2_p_traffic_light_view.view.* + +/** + * bus乘客端:红绿灯view + * + * Created on 2022/3/14 + */ +class M2PTrafficLightView @JvmOverloads constructor( + context: Context?, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : LinearLayout(context, attrs, defStyleAttr), IMoGoTrafficLightListener { + + companion object { + private const val TAG = "M2PTrafficLightView" + } + + private var mCurrentLightId = TrafficLightEnum.BLACK + + init { + init(context) + } + + private fun init(context: Context?) { + LayoutInflater.from(context).inflate(R.layout.m2_p_traffic_light_view, this, true) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerTrafficLightListenerManager.addListener(TAG, this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerTrafficLightListenerManager.removeListener(TAG) + } + + /** + * 展示红绿灯预警 + * + * @param checkLightId 0-都是默认,1-红,2-黄,3-绿 + * @param lightSource 1:云端下发;2:自车感知 + */ + override fun showTrafficLight(checkLightId: TrafficLightEnum, lightSource: DataSourceType) { + super.showTrafficLight(checkLightId, lightSource) + mCurrentLightId = checkLightId + updateTrafficLightIcon(checkLightId) + } + + /** + * 关闭红绿灯预警展示,并重制灯态 + */ + override fun disableTrafficLight() { + super.disableTrafficLight() + UiThreadHandler.post { + mCurrentLightId = TrafficLightEnum.BLACK + this@M2PTrafficLightView.visibility = GONE + } + } + + /** + * @param redNum 红灯倒计时 + * @param yellowNum 黄灯倒计时 + * @param greenNum 绿灯倒计时 + */ + override fun changeCountdownTrafficLightNum(redNum: Int, yellowNum: Int, greenNum: Int) { + super.changeCountdownTrafficLightNum(redNum, yellowNum, greenNum) + resetView() + when (mCurrentLightId) { + TrafficLightEnum.RED -> changeCountdownRed(redNum) + TrafficLightEnum.YELLOW -> changeCountdownYellow(yellowNum) + TrafficLightEnum.GREEN -> changeCountdownGreen(greenNum) + else -> UiThreadHandler.post { m2_p_traffic_light_time_tv.text = "" } + } + } + + override fun changeCountdownRed(redNum: Int) { + super.changeCountdownRed(redNum) + UiThreadHandler.post { + if (redNum > 0) { + resetView() + m2_p_traffic_light_time_tv.text = redNum.toString() + } else { + disableTrafficLightCountDown() + m2_p_traffic_light_time_tv.text = "" + } + } + } + + override fun changeCountdownGreen(greenNum: Int) { + super.changeCountdownGreen(greenNum) + UiThreadHandler.post { + if (greenNum > 0) { + resetView() + m2_p_traffic_light_time_tv.text = greenNum.toString() + } else { + disableTrafficLightCountDown() + m2_p_traffic_light_time_tv.text = "" + } + } + } + + override fun changeCountdownYellow(yellowNum: Int) { + super.changeCountdownYellow(yellowNum) + UiThreadHandler.post { + if (yellowNum > 0) { + resetView() + m2_p_traffic_light_time_tv.text = yellowNum.toString() + } else { + disableTrafficLightCountDown() + m2_p_traffic_light_time_tv.text = "" + } + } + } + + /** + * 更新红绿灯icon + * + * @param lightId 0-都是默认,1-红,2-黄,3-绿 + */ + private fun updateTrafficLightIcon(lightId: TrafficLightEnum) { + UiThreadHandler.post { + when (lightId) { + TrafficLightEnum.RED -> { + m2_p_traffic_light_iv.setBackgroundResource(R.drawable.m2_light_red_nor) + this@M2PTrafficLightView.visibility = VISIBLE + } + TrafficLightEnum.YELLOW -> { + m2_p_traffic_light_iv.setBackgroundResource(R.drawable.m2_light_yellow_nor) + this@M2PTrafficLightView.visibility = VISIBLE + } + TrafficLightEnum.GREEN -> { + m2_p_traffic_light_iv.setBackgroundResource(R.drawable.m2_light_green_nor) + this@M2PTrafficLightView.visibility = VISIBLE + } + else -> this@M2PTrafficLightView.visibility = GONE + } + } + } + + override fun disableTrafficLightCountDown() { + super.disableTrafficLightCountDown() + UiThreadHandler.post { + val layoutParams = layoutParams + if (layoutParams is MarginLayoutParams) { + val lp = layoutParams + lp.width = resources.getDimension(R.dimen.dp_40).toInt() + setLayoutParams(lp) + m2_p_traffic_light_time_tv.visibility = GONE + m2_p_traffic_light_bg.layoutParams.width = + resources.getDimension(R.dimen.dp_40).toInt() + } + } + } + + private fun resetView() { + val layoutParams = layoutParams + if (layoutParams is MarginLayoutParams) { + val lp = layoutParams + lp.width = resources.getDimension(R.dimen.m2_p_light_width).toInt() + setLayoutParams(lp) + m2_p_traffic_light_time_tv.visibility = VISIBLE + m2_p_traffic_light_bg.layoutParams.width = + resources.getDimension(R.dimen.m2_p_light_width).toInt() + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_green_nor.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_green_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..3135524a7940d5b926db1ffcceefe905c526ca88 GIT binary patch literal 3417 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_red_nor.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_red_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..e873c2b85eb033ad885904698a1bc5ac36a743fc GIT binary patch literal 2909 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 Hu0mjfMH*kh literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_yellow_nor.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_light_yellow_nor.png new file mode 100644 index 0000000000000000000000000000000000000000..80467826014f9276cad383405edd42579d948f2e GIT binary patch literal 3925 zcmV-b532BqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91E1&}a1ONa40RR91D*ylh0B+nz_y7P7zez+vR9Fd}S;=l(Np`(4y_X|r zijtbu#V)JMHs!Wq$P3$mQCb+iG2or{{u7G7QNJK>3>aS6Xn+kHUKk*%;kJlIL6B8d zDp3+8CX+e5Ats+2FEcraYFBqK-xTAC6DMxm2nzZ=LyROoD7t?`9B102cqK1N;&(Of zN`{+1^v%&X$D($zXo7+5J-(W8_vwcnNIC9b%@-e|uPFaJg8oS5*Xq6zB!C^92+lFR9&hPgeT#_k-Xz$Iec@-&(3Y zO*aF*1?UriJ_6{y$MIu;Z=7HZlm}yv(A$FpNw-cUtz+2Fy=s5gH|p-Hnq=C@qBbJ4 zN>tVepDASkw1vw@SvwJ>5`jt?NKbqv-!AC8nv$5^a1KVkfI@Y?Tj4Eo&it4VVH%`7W8?G2_`JK-)V0}cie;l1bIczF1n9_&)s-)D-6C9w#X zUQ?nVp7pz!O!toz4R;%$rONs(pI5@Rh0!f%sS~2;nJ%7AF6pRNqVp><#3c#2q7hIe zViZ(Mqb4D$^O(^<>g+VCFh-|F(8x3>Tf|8yUDYakw@a|SYH9MFr zcKZ{`@-FmfNW$g^Z)5EzvMRoz>F8HMiRU7hubeV(W1w@T-8eWsjkYRUk_srcPJb_9 zDG1lK33nj_20CMPx%x`(jMwFG;*9Q2vW{%$wH9qJsVm7Xg-Wce5PwYG{ggVrFMPlM zlPI-fk)_@Tv;|thi4u9%@~wPbEU*5V8V#R?;oui0r>D-CSDZseN1+o!aUO#!Z0xVC zINJP<(S-Rj%|s$^Oknu~i9G!=`%lEZO(#wZt=D=&mom@Bp1`c@1Z#SjrW?w~9U%J) z+h6`Uy1hS?d3&2q-~5vZ#ecz`5wb>EWM1kbsJ`(O zMvnS@RCWip9VYV#n4sO69FiaeJ;o=rdPGNReOZ}SXDQ2S-?83ww2FP1ZXgs~V=bIX;0cKb@JEi1M^ZblWVWJ3i?q`&#~8F!kW0eFyV2;s zapb#rPXOW!2-}!BlgZv(VwU4m+^i!kXD?(|qSJ9Y{yui%nRmWuYgYyXv$vT^8V#^w zV(C68;N3NJs>ckL|2AQ+2FJ2=PG`~@)ic@Dx{i^e>&Y)itL~a0e^zJmuhCB#0~QkERNGsK7MkW^KZ_p&8jZSZ@qADA(KgMgRM2yiq}IDo=%HE4|!Gl z2NXP@3v0lhR8he?DS;^}#1yuil<~FAgj8*5{TkM&`@z*}KAij%U~A4K4>=ZDhMQRC zt}KS1W#D->A#E-bP#!Y%=gQk(TM^zG9knV7jHZ%jMIl#U+3Bzr?16GXOU(=4U%YWb z8Ys%PB#TI3c|mImt7fi*SaQMr2<8fn;tGx;RtJE`x24Ee`o_FKI={zRUVfkFNogrR z^5E%&_%vF-j9zEXT21T>)mjSe#BsI(!CZt3W)ZiugIhr~QCNn+t~6294yHURgJJK) zXmKUMp%2U+_k|}C;%01JFx{l{;3v&u1n|~OGL%W>ldeUNZ0zVd7*wN#cM|!L!;3p8 zaXDN8%LxM%$=IK$gMj-fJ^q9Y3M3mJYD3&;Y7B$I)__6IX8B?wAw8Kg)+OhKG!~Lz zyStEyKy_G}md0zPMY1{Pv!0I_6P28ieKsY7se@w5T@!YT+_*i;0x z8RGeQL0cOe7!cmP-A(YXg584IwJLTo*k{6qu2+8Q9Gp^H!{vvI=ch5URcRVy7ochM zVrW?sA$6w7lky@i`jk1b%KA>@g?ur}30Rpr0M^0!Nbuc&K6X_+K7K`aE(sU5CxKqv z-n}Cloyi#Ctd7ZJb%++WvIMC^>|b7`Sq=-(Sb=6n^Gr|H0Z&-UH1p@Pe{Lnx6X|Rr zxa{0oC?CEB*kSas0*$V6K15rG<#rM7tY?>O)n(0|93bI-+%WI34Kbl8I^JifwvKR+ zVu^ZAjme&th5aMAe=>O%vxyb?Ib)ldW@Z~-09-KBJfTx@ zO!u3R>}F$2lg+*KeZeH#;|r#f&ERV}?YEV4%DBO<(axyt^UoSFNY z;IPs$Xe^heJf;H`pxTe} zcK`dlv+@U3G5VRW$3F_b#*P<`9(0M7)JdIBv}u2@^4_n6R$tp#y@F2P0O*-?YJ#oX z1YT(g7p4{k*_YcxKYh8}oX{|Nd#S5)b{TUMK<{iTPT1a%+NEuET2GDfZBxSm*AZs~ zQnaxR@1S&7DTS3;EW!S+O08G016~5N9l{w01jP#*3^HsAfWdbh1mOlgx)B_g5l(BS zjzodI941Iybz7d_gAexI$iMC&%$R*tiY zvz#i}Ya>;FU3A*!7L&JxlQi+BI)m5T!kIyia|I1BaP$<85(EyC2vgL-Q5I7}x^O{O z4hJ3(NU1zk*lAVoysXcWdSE~mMZq8rg2A4dSxcxYaDi3?08j%?MMdWo@F?kt86ehzmWzzaQ2}z_Nq!l`c|Nup~jg~ zt)r=70xP!$w|>&DTiV&W?76KC5Pb{7|NIb>3J72UcnVww_W@W=Omg5CoOjVCKm#xV z@Cj9_cvqX%6(|5eYn&_8+H0_)t=Djuu^?4Z;_wrmDdAWPzF!1Tn16J@7T|Jg8Onz7 z#>97Z-nAQYU8GQ^!uYqjf+#rK_0zVfFvm|zL9dT#D_NTZu?#h$G%F)27bq|0UMh!HQfmJP| z7$alXikOb;G{Dv(x;5Aj?33-#gz|MO+{>SZImmtF-@9Sx5xof9_-_q!4dYZ#>~YRH zXfRE$?}?YLl-u1P-kf7|-3bE6a*H}QN)b;`#KAG*qIW*QaF5}bY(9l)0*hGUlWpf= zM}S5-Tp9WlGrKJ+z8rb|eGWLqGs_$pH1vG + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 6120ab8f89..05b1b51d32 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -5,6 +5,14 @@ android:layout_width="match_parent" android:layout_height="@dimen/dp_556"> + + + @@ -45,7 +53,7 @@ android:layout_height="@dimen/dp_38" android:background="@drawable/bg_p_m2_auto_bg" android:layout_marginTop="@dimen/dp_12" - android:text="Auto" + android:text="@string/m2_p_auto_tv" android:textSize="@dimen/dp_18" android:gravity="center" android:textColor="@color/m2_button_auto_tv_color" @@ -62,10 +70,9 @@ app:layout_constraintTop_toTopOf="@+id/auto_tv" /> - @@ -90,7 +97,7 @@ android:src="@drawable/m2_line_location_bg"/> + + - - - \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml index e17de7a855..19447f7f10 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml @@ -7,6 +7,8 @@ #0B1E38 #5D7199 #0B1E38 + #6B7EA6 + #2D3E5F #FFFFA28B #FFDA1100 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/dimens.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/dimens.xml index e738022b0d..ca8e0dcfc1 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/dimens.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/dimens.xml @@ -1,61 +1,5 @@ - 700dp - 40dp - 40dp - 40dp - 40dp - 110dp - 224dp - 510dp - 3dp - - 158dp - 90dp - 45dp - 158dp - 90dp - 45dp - 90dp - 90dp - 3dp - - 224dp - 50dp - 50dp - 44dp - 130dp - 38dp - - 36dp - - 110dp - 42dp - - 4dp - 10dp - 20dp - 60dp - 30dp - 20dp - 50dp - 6dp - 50dp - 36dp - 80dp - 100dp - 80dp - 60dp - 6dp - - 685dp - 309dp - 50dp - 10dp - 44dp - 55dp - 40dp - - 584dp - 550dp + 60dp + 40dp \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/strings.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/strings.xml index e98feed5f5..47672a2416 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/strings.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/strings.xml @@ -1,8 +1,8 @@ - KM/H + KM/H 您已收车 - 暂无班次 + 暂无路线 到达站: @@ -10,4 +10,9 @@ 始发站: 请携带好随身物品下车。 欢迎乘坐蘑菇车联自动驾驶车。 + + src/m2/assets/m2_map_style.data + src/m2/assets/m2_map_style_extra.data + Auto + \ No newline at end of file From 2f7b696ecb0a90cc47e8f5106c12cf398c444d58 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 13 Feb 2023 22:01:17 +0800 Subject: [PATCH 02/14] [2.13.0-arch-opt] pnc action view custom --- .../function/hmi/ui/vehicle/PncActionsView.kt | 34 ++++++++++++++++--- .../src/main/res/layout/view_pnc_actions.xml | 3 -- .../src/main/res/values/attr.xml | 6 ++++ .../startup/stageone/HttpDnsStartUp.kt | 1 + 4 files changed, 36 insertions(+), 8 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt index 67c43f6f1f..66a1a68404 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt @@ -2,7 +2,9 @@ package com.mogo.eagle.core.function.hmi.ui.vehicle import android.content.Context import android.util.AttributeSet +import android.util.TypedValue.COMPLEX_UNIT_PX import android.view.LayoutInflater +import android.view.ViewGroup import androidx.appcompat.content.res.AppCompatResources import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo @@ -23,6 +25,8 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhjt.service_biz.BizConfig import kotlinx.android.synthetic.main.view_pnc_actions.view.* +import me.jessyan.autosize.AutoSize +import me.jessyan.autosize.utils.AutoSizeUtils import mogo.telematics.pad.MessagePad class PncActionsView @JvmOverloads constructor( @@ -41,12 +45,24 @@ class PncActionsView @JvmOverloads constructor( private var mAutoPilotStatusInfo: AutopilotStatusInfo? = null + private val bgResources: Int + private val topMargin: Int + private val txtSize: Int + init { LayoutInflater.from(context).inflate(R.layout.view_pnc_actions, this, true) + val a = context.obtainStyledAttributes(attrs, R.styleable.PncActionsView, defStyleAttr, 0) + bgResources = a.getResourceId(R.styleable.PncActionsView_background_resource, R.drawable.pnc_actions_bg) + topMargin = a.getResourceId(R.styleable.PncActionsView_pnc_top_margin,resources.getDimension(R.dimen.dp_30).toInt()) + txtSize = a.getResourceId(R.styleable.PncActionsView_pnc_size,resources.getDimension(R.dimen.dp_34).toInt()) + a.recycle() } override fun onAttachedToWindow() { super.onAttachedToWindow() + (tvHmiPncActions.layoutParams as MarginLayoutParams).topMargin = topMargin + tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX,txtSize.toFloat()) + CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerPlanningActionsListenerManager.addListener(TAG, this) CallerTrafficLightListenerManager.addListener(TAG, this) @@ -78,14 +94,21 @@ class PncActionsView @JvmOverloads constructor( var actions: String? = null planningActionMsg.actionMsg?.let { it -> try { - actions = PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number) - } catch (e:Exception){ + actions = PncActionsHelper.getAction( + it.drivingState.number, + it.drivingAction.number + ) + } catch (e: Exception) { e.printStackTrace() } //如果是存在云端红绿灯数据条件下,设置云端数据 - if (PncActionsHelper.isWaitingTrafficlight(it.drivingState.number, it.drivingAction.number) + if (PncActionsHelper.isWaitingTrafficlight( + it.drivingState.number, + it.drivingAction.number + ) && mTrafficLightResult != null - && getWaitTrafficLightTime().isNotBlank()) { + && getWaitTrafficLightTime().isNotBlank() + ) { actions += ",预计${getWaitTrafficLightTime()}秒后通过" } else { mTrafficLightResult = null @@ -96,7 +119,8 @@ class PncActionsView @JvmOverloads constructor( this.background = null tvHmiPncActions.text = "" } else { - this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) + this.background = + AppCompatResources.getDrawable(context, bgResources) tvHmiPncActions.text = actions } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml index 81747337ad..7314ec144c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml @@ -9,10 +9,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:paddingStart="@dimen/dp_68" - android:paddingEnd="@dimen/dp_68" android:textColor="#FFFFFF" - android:textSize="@dimen/dp_34" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index 638b1ca53c..2b18f99042 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -73,4 +73,10 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index cf2c47b420..9b1859c223 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -116,6 +116,7 @@ class HttpDnsStartUp : AndroidStartup() { // clientConfig.socketTechUrl // 设置是否是直播推流的主播 clientConfig.isAnchor = true + clientConfig.loopCheckDelay = (60 * 60 * 2 * 1000).toLong() //todo arrow when (DebugConfig.getCarMachineType()) { DebugConfig.CAR_MACHINE_TYPE_LENOVO -> clientConfig.thirdPartyAppKey = "pfieouqg" else -> clientConfig.thirdPartyAppKey = "wbvpzgar" From e0434986fe77e2c7459930a90fdcb240c2029fa3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 13 Feb 2023 22:06:39 +0800 Subject: [PATCH 03/14] [2.13.0-arch-opt] fix code --- .../function/angle/MoGoVisualAngleChangeProvider.kt | 10 +--------- .../api/map/angle/IMoGoVisualAngleChangeProvider.kt | 4 ++-- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index 52216f9c14..d07c857bf1 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -28,11 +28,8 @@ import java.util.concurrent.atomic.* @Route(path = MogoServicePaths.PATH_VISUAL_ANGLE) class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { - override val functionName: String - get() = "VisualAngleChange" - companion object { - const val TAG = "VisualAngleChange" + private const val TAG = "VisualAngleChange" } private val triggerLocation = AtomicReference() @@ -147,11 +144,6 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { return CoroutineScope(Handler(Looper.getMainLooper()).asCoroutineDispatcher("change-visual-angle") + SupervisorJob()) } - - override fun onDestroy() { - CallerMapRoadListenerManager.unRegisterRoadListener("VisualAngleChange") - } - @Volatile private var mLevel:Boolean = false diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt index a4c1ec1712..a91757137d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/IMoGoVisualAngleChangeProvider.kt @@ -1,8 +1,8 @@ package com.mogo.eagle.core.function.api.map.angle -import com.mogo.eagle.core.function.api.base.* +import com.alibaba.android.arouter.facade.template.IProvider -interface IMoGoVisualAngleChangeProvider: IMoGoFunctionServerProvider { +interface IMoGoVisualAngleChangeProvider: IProvider { fun updateLongSightLevel(level: Boolean) From 8d8a078d6db2ed627c74bfaf0c77f598eb6fb159 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 14 Feb 2023 11:51:59 +0800 Subject: [PATCH 04/14] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96obu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 13 -- .../location/MoGoLocationDispatcher.kt | 14 +- .../datacenter/obu/MogoObuDcCombineManager.kt | 119 ++++------ .../obu/MogoPrivateObuNewManager.kt | 209 ++++++------------ .../obu/adapter/MoGoObuListenerImpl.kt | 27 ++- .../obu/receiver/ObuRsuTestTriggerReceiver.kt | 120 ---------- .../obu/receiver/ObuTestNewObuReceiver.kt | 4 +- .../obu/receiver/ObuTestTriggerReceiver.kt | 89 -------- .../api/obu/IMoGoObuLocationWGS84Listener.kt | 4 +- .../CallerObuLocationWGS84ListenerManager.kt | 3 +- 10 files changed, 133 insertions(+), 469 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuRsuTestTriggerReceiver.kt delete mode 100644 core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestTriggerReceiver.kt diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-datacenter/src/main/AndroidManifest.xml index e641d09ce5..63dc07bcfc 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-datacenter/src/main/AndroidManifest.xml @@ -3,13 +3,7 @@ package="com.mogo.eagle.core.function.datacenter"> - - - - - - @@ -18,13 +12,6 @@ - - - - - - - diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index c66bdb3f4c..4c43812fbe 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -223,14 +223,14 @@ object MoGoLocationDispatcher : /** * OBU定位回调监听 */ - override fun onObuLocationWGS84(data: MogoObuHvBasicsData) { + override fun onObuLocationWGS84(data: MessagePad.GnssInfo) { // 更新GNSS 信息 - lastOBULocation.longitude = data.vehBasicsMsg.longitude - lastOBULocation.latitude = data.vehBasicsMsg.latitude - lastOBULocation.heading = data.vehBasicsMsg.heading - lastOBULocation.gnssSpeed = data.vehBasicsMsg.speed.toFloat() - lastOBULocation.altitude = data.vehBasicsMsg.elevation - lastOBULocation.satelliteTime = data.vehBasicsMsg.secMark + lastOBULocation.longitude = data.longitude + lastOBULocation.latitude = data.latitude + lastOBULocation.heading = data.heading + lastOBULocation.gnssSpeed = data.gnssSpeed.toFloat() + lastOBULocation.altitude = data.altitude + lastOBULocation.satelliteTime = (data.satelliteTime * 1000).toLong() lastOBULocation.lastReceiveTime = TimeUtils.getNowMills() // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index 39f0cd00a1..f76929ab06 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -256,24 +256,8 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener when (status) { // 添加 MogoObuConstants.STATUS.ADD -> { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - appId, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) - CallerHmiManager.warningV2X( - appId, - alertContent, - ttsContent, null, direction - ) - + saveObuToDcData(appId, alertContent, ttsContent) + showWarning(appId, alertContent, ttsContent, direction) // 更新数据,是否需要 // TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(rsiWarningData)?.let { // CallerMapUIServiceManager.getMarkerService() @@ -342,25 +326,8 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener when (rsmWarningData.warningMsg.warningDataList[0].status) { MogoObuConstants.STATUS.ADD -> { // 添加 - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - v2xType, - alertContent, - ttsContent, - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) - CallerHmiManager.warningV2X( - v2xType, - alertContent, - ttsContent, - null, - direction - ) + saveObuToDcData(v2xType, alertContent, ttsContent) + showWarning(v2xType, alertContent, ttsContent, direction) // 更新数据 TODO // TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(rsmWarningData)?.let { @@ -459,27 +426,19 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener return when (targetClassification) { MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_BOTTOM //正后方 - MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_RIGHT -> WarningDirectionEnum.ALERT_WARNING_RIGHT //正右方 - MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_LEFT -> WarningDirectionEnum.ALERT_WARNING_LEFT //正左方 - MogoObuConstants.VEH_TARGET_POSITION.AHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAR_LEFT -> WarningDirectionEnum.ALERT_WARNING_TOP_LEFT //左前方 - MogoObuConstants.VEH_TARGET_POSITION.AHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAT_RIGHT -> WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT //右前方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_LEFT, -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT //左后方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_RIGHT, -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT //右后方 - MogoObuConstants.VEH_TARGET_POSITION.UNCLASSIFIED -> WarningDirectionEnum.ALERT_WARNING_NON //未知 else -> WarningDirectionEnum.ALERT_WARNING_ALL } @@ -552,24 +511,8 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener "${M_OBU}${TAG}", "MogoObuDcCombineManager changeTrafficLightStatus 闯红灯 --------> ttsContent = $ttsContent ---alertContent = $alertContent " ) - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) - - CallerHmiManager.warningV2X( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, - alertContent, - ttsContent// 只有第一次才tts,防止更新的时候不断的提醒 - ) + saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent) + showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } } @@ -605,23 +548,8 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) val maxSpeed = currentLight.suggestMaxSpeed * 3.6 if (maxSpeed > 0) { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) - CallerHmiManager.warningV2X( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent// 只有第一次才tts,防止更新的时候不断的提醒 - ) + saveObuToDcData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent) + showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } } } @@ -666,4 +594,35 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener } } + /** + * 保存obu通过工控机传输的数据到消息盒子 + */ + private fun saveObuToDcData(type: String, content: String, tts: String) { + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, + V2XMsg( + type, + content, + tts + ) + ).apply { + sourceType = DataSourceType.TELEMATIC + } + ) + } + + /** + * 消息盒子对应消息的语音播报 + */ + private fun showWarning(type: String, content: String, tts: String, direction: WarningDirectionEnum) { + CallerHmiManager.warningV2X( + type, + content, + tts, + null, + direction + ) + } + } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 448913e959..cade324693 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -29,7 +29,6 @@ import com.mogo.support.obu.constants.MogoObuComType import com.mogo.support.obu.constants.MogoObuConstants import com.mogo.support.obu.constants.MogoObuTopicId import com.mogo.support.obu.model.* -import com.mogo.support.obu.model.advance.SpatLight import com.mogo.support.obu.option.MogoObuCom import com.mogo.support.obu.option.MogoObuOptions import com.zhidao.support.obu.ObuManager @@ -72,7 +71,7 @@ class MogoPrivateObuNewManager private constructor() { .registerTopic(MogoObuTopicId.MAP_MATCH) .build() - //每次连接的时候如果连接连接了,先断开 + //每次连接的时候如果连接连接了,先断开,防止ip改变等导致的连接失败 if (ObuManager.getInstance().connectStatus == 1) { try { ObuManager.getInstance().disconnect() @@ -80,7 +79,6 @@ class MogoPrivateObuNewManager private constructor() { e.printStackTrace() } } - ObuManager.getInstance().connect(options) } @@ -92,7 +90,6 @@ class MogoPrivateObuNewManager private constructor() { ObuManager.getInstance().disconnect() } - private val mogoObuListener: OnObuListener = object : OnObuListener { /** * 连接状态的改变 @@ -111,15 +108,15 @@ class MogoPrivateObuNewManager private constructor() { * HV车辆基础信息 gnssInfo */ override fun onGnssInfo(gnssInfo: MessagePad.GnssInfo?) { - if (gnssInfo != null ) { + if (gnssInfo != null) { CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onGnssInfo lon = ${gnssInfo.longitude} --- lat = ${gnssInfo.latitude} ---speed = ${gnssInfo.gnssSpeed} ---heading = ${gnssInfo.heading} --acceleration = ${gnssInfo.acceleration} --yawRate = ${gnssInfo.yawRate}" ) // 使用与渠道配置一样的gps提供者提供的数据,app/productFlavors/fPadLenovo.gradle GPS_PROVIDER 0-Android系统,1-工控机,2-OBU if (2 == FunctionBuildConfig.gpsProvider) { - // 同步给MAP地图 TODO -// CallerObuLocationWGS84ListenerManager.invokeObuLocationWGS84(gnssInfo) + // 同步给MAP地图 + CallerObuLocationWGS84ListenerManager.invokeObuLocationWGS84(gnssInfo) // 同步更新经纬度和系统时间至 AutoPilotStatusListener CallerAutoPilotStatusListenerManager.updateAutoPilotLatLon( System.currentTimeMillis() / 1000.0, @@ -244,9 +241,6 @@ class MogoPrivateObuNewManager private constructor() { //车内标牌 MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { when (data.warningMsgList[0].signSerialNum) { -// MogoObuConstants.RTS.RTI_TYPE_INTERSECTION -> { //十字路口 -// appId = EventTypeEnumNew.TYPE_ID_NTERSECTION.poiType -// } MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType } @@ -296,11 +290,6 @@ class MogoPrivateObuNewManager private constructor() { // appId = // EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType // } - -// MogoObuConstants.RTS.RTI_TYPE_GO_STRAIGHT_TURN_RIGHT -> { //直行或右转 -// appId = -// EventTypeEnumNew.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -// } MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType } @@ -371,24 +360,8 @@ class MogoPrivateObuNewManager private constructor() { if (alertContent.isEmpty() || ttsContent.isEmpty()) { return } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - appId, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) - CallerHmiManager.warningV2X( - appId, - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - null, direction - ) + saveObuData(appId, alertContent, ttsContent) + showWarning(appId, alertContent, ttsContent, direction) // 更新数据 TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data)?.let { @@ -472,19 +445,6 @@ class MogoPrivateObuNewManager private constructor() { } MogoObuConstants.STATUS.UPDATE -> { // 更新 - //处理删除逻辑, -// if (rsmPtcIdMap.containsKey(data.participant.ptcId.toString())) { -// var oldTime = rsmPtcIdMap[data.participant.ptcId.toString()] -// var timeDiff = (System.currentTimeMillis() - oldTime!!) / 1000 -// if (timeDiff > 3) { //超过3秒,删除对应弱势交通元素 -// CallerMapUIServiceManager.getMarkerService() -// ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString()) -// } -// rsmPtcIdMap.remove(data.participant.ptcId.toString()) -// rsmPtcIdMap[data.participant.ptcId.toString()] = System.currentTimeMillis() -// } else { -// rsmPtcIdMap[data.participant.ptcId.toString()] = System.currentTimeMillis() -// } } MogoObuConstants.STATUS.DELETE -> { // 删除 @@ -522,25 +482,8 @@ class MogoPrivateObuNewManager private constructor() { if (alertContent.isEmpty() || ttsContent.isEmpty()) { return } - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - v2xType, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) - - CallerHmiManager.warningV2X( - v2xType, - alertContent, - ttsContent,// 只有第一次才tts,防止更新的时候不断的提醒 - null, direction - ) + saveObuData(v2xType, alertContent, ttsContent) + showWarning(v2xType, alertContent, ttsContent, direction) } MogoObuConstants.STATUS.UPDATE -> {// 更新 @@ -593,9 +536,8 @@ class MogoPrivateObuNewManager private constructor() { } } } - } - } - } + } + } /** * 获取消息的方位 车辆相关 @@ -605,27 +547,19 @@ class MogoPrivateObuNewManager private constructor() { return when (targetClassification) { MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_BOTTOM //正后方 - MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_RIGHT -> WarningDirectionEnum.ALERT_WARNING_RIGHT //正右方 - MogoObuConstants.VEH_TARGET_POSITION.INTERSECTION_LEFT -> WarningDirectionEnum.ALERT_WARNING_LEFT //正左方 - MogoObuConstants.VEH_TARGET_POSITION.AHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_LEFT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAR_LEFT -> WarningDirectionEnum.ALERT_WARNING_TOP_LEFT //左前方 - MogoObuConstants.VEH_TARGET_POSITION.AHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.AHEAD_FAR_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_FAT_RIGHT -> WarningDirectionEnum.ALERT_WARNING_TOP_RIGHT //右前方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_LEFT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_LEFT, -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT //左后方 - MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_RIGHT, MogoObuConstants.VEH_TARGET_POSITION.BEHEAD_FAR_RIGHT, -> WarningDirectionEnum.ALERT_WARNING_BOTTOM_RIGHT //右后方 - MogoObuConstants.VEH_TARGET_POSITION.UNCLASSIFIED -> WarningDirectionEnum.ALERT_WARNING_NON //未知 else -> WarningDirectionEnum.ALERT_WARNING_ALL } @@ -633,10 +567,9 @@ class MogoPrivateObuNewManager private constructor() { /** * 构造对应展示数据和场景 根据obu的场景,add change delete确定是否展示 - * * @param appId 使用WarningTypeEnum获取icon、提示内容、tts内容 TODO 添加事件频繁播报拦截 - * - * @see com.mogo.module.common.enums.EventTypeEnum + * @see com.mogo.module.common.enums.EventTypeEnumNew + * EventTypeEnumNew在定义的id为了防止重复,和原始数据是不一样的,有对应关系 */ private fun handleSdkObu( appId: String, @@ -766,9 +699,9 @@ class MogoPrivateObuNewManager private constructor() { } // 这里处理固定的提示信息,包括了<紧急车辆提醒> - else -> { //TODO - // ttsContent = EventTypeEnumNew.getWarningTts(appId.toString()) - // alertContent = EventTypeEnumNew.getWarningContent(appId.toString()) + else -> { + // ttsContent = EventTypeEnumNew.getWarningTts(appId.toString()) + // alertContent = EventTypeEnumNew.getWarningContent(appId.toString()) } } @@ -782,18 +715,7 @@ class MogoPrivateObuNewManager private constructor() { ) if (level == 2 || level == 3) { //不显示弹框,其它保留 - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - appId, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) + saveObuData(appId, alertContent, ttsContent) CallerHmiManager.warningV2X( appId, alertContent, @@ -837,7 +759,11 @@ class MogoPrivateObuNewManager private constructor() { /** * 处理红绿灯 */ - private fun handlerTrafficLight(appId: Int, status: Int, lights: MutableList) { + private fun handlerTrafficLight( + appId: Int, + status: Int, + lights: MutableList + ) { CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "handlerTrafficLight --- status = $status ---lights.size = ${lights.size} ---lights = $lights ---appId = $appId" @@ -845,8 +771,7 @@ class MogoPrivateObuNewManager private constructor() { when (status) { // 添加 MogoObuConstants.STATUS.ADD, - MogoObuConstants.STATUS.UPDATE - -> { + MogoObuConstants.STATUS.UPDATE -> { if (lights != null && lights.isNotEmpty()) { changeTrafficLightStatus(appId, lights) } @@ -857,9 +782,6 @@ class MogoPrivateObuNewManager private constructor() { CallerTrafficLightListenerManager.disableTrafficLight() isShowGreenWave = false isShowRunRedLight = false - // lightCountDownRed = 1 - // lightCountDownGreen = 1 - // lightCountDownYellow = 1 } } } @@ -867,7 +789,6 @@ class MogoPrivateObuNewManager private constructor() { private var isShowGreenWave = false private var isShowRunRedLight = false - /** * 修改红绿灯 */ @@ -893,31 +814,13 @@ class MogoPrivateObuNewManager private constructor() { if (!isShowRunRedLight) { isShowRunRedLight = true CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "changeTrafficLightStatus 闯红灯 --------> " - ) + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "changeTrafficLightStatus 闯红灯 --------> ") ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) alertContent = EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) - - CallerHmiManager.warningV2X( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, - alertContent, - ttsContent// 只有第一次才tts,防止更新的时候不断的提醒 - ) + saveObuData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent) + showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } } @@ -935,33 +838,16 @@ class MogoPrivateObuNewManager private constructor() { ttsContent = String.format( EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeedTts - ) + adviceSpeedTts) alertContent = String.format( EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType), - adviceSpeed - ) + adviceSpeed) val maxSpeed = currentLight.suggestMaxSpeed if (maxSpeed > 0) { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) - CallerHmiManager.warningV2X( - EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, - alertContent, - ttsContent// 只有第一次才tts,防止更新的时候不断的提醒 - ) + saveObuData(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent) + showWarning(EventTypeEnumNew.TYPE_USECASE_ID_IVP_GREEN.poiType, alertContent, ttsContent, WarningDirectionEnum.ALERT_WARNING_NON) } } } @@ -1004,4 +890,39 @@ class MogoPrivateObuNewManager private constructor() { ) } } - } + } + + /** + * 保存obu直连数据到消息盒子 + */ + private fun saveObuData(type: String, content: String, tts: String) { + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, + V2XMsg( + type, + content, + tts + ) + ).apply { + sourceType = DataSourceType.OBU + } + ) + } + + /** + * 消息盒子对应消息的语音播报 + */ + private fun showWarning(type: String, content: String, tts: String, direction: WarningDirectionEnum) { + CallerHmiManager.warningV2X( + type, + content, + tts, + null, + direction + ) + } + +} + + diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt index 2ca1b43239..17e01071e0 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/adapter/MoGoObuListenerImpl.kt @@ -1,15 +1,17 @@ package com.mogo.eagle.core.function.datacenter.obu.adapter import com.mogo.eagle.core.function.call.obu.* -import com.mogo.support.obu.OnMogoObuListener +import com.mogo.support.obu.ObuScene import com.mogo.support.obu.constants.Define.ConnectStatus import com.mogo.support.obu.model.* +import com.zhidao.support.obu.OnObuListener +import mogo.telematics.pad.MessagePad /** * 适配 OBU 回调监听分发,这里不做业务,只做数据包装及分发处理 * @author dong hong yu */ -object MoGoObuListenerImpl : OnMogoObuListener() { +object MoGoObuListenerImpl : OnObuListener { /** * 连接状态 @@ -36,8 +38,10 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuHvBasics(data: MogoObuHvBasicsData) { - CallerObuLocationWGS84ListenerManager.invokeObuLocationWGS84(data) + override fun onGnssInfo(gnssInfo: MessagePad.GnssInfo?) { + if (gnssInfo != null) { + CallerObuLocationWGS84ListenerManager.invokeObuLocationWGS84(gnssInfo) + } } /** @@ -46,8 +50,7 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuRvWarning(data: MogoObuRvWarningData) { - CallerObuWarningRvListenerManager.invokeObuRvWarning(data) + override fun onObuRvWarning(rvWarningData: ObuScene.RvWarningData?) { } /** @@ -56,8 +59,7 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuSpatWarning(data: MogoObuSpatWarningData) { - + override fun onObuSpatWarning(spatWarningData: ObuScene.SpatWarningData?) { } /** @@ -66,8 +68,7 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuRsiWarning(data: MogoObuRsiWarningData) { - + override fun onObuRsiWarning(rsiWarningData: ObuScene.RsiWarningData?) { } /** @@ -76,7 +77,7 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuRsmWarning(data: MogoObuRsmWarningData) { + override fun onObuRsmWarning(rsmWarningData: ObuScene.RsmWarningData?) { } /** @@ -85,6 +86,8 @@ object MoGoObuListenerImpl : OnMogoObuListener() { * @param data 数据 * @since 1.0.0 */ - override fun onMogoObuMapMath(data: MogoObuMapMathData) { + override fun onObuMapMath(mapMatchData: ObuScene.MapMatchData?) { + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuRsuTestTriggerReceiver.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuRsuTestTriggerReceiver.kt deleted file mode 100644 index d79a247af1..0000000000 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuRsuTestTriggerReceiver.kt +++ /dev/null @@ -1,120 +0,0 @@ -package com.mogo.eagle.core.function.datacenter.obu.receiver - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -//import com.mogo.eagle.core.function.obu.mogo.MogoObuConst -//import com.mogo.eagle.core.function.datacenter.obu.MogoPrivateObuManager -//import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -//import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU -//import com.zhidao.support.obu.constants.ObuConstants -//import com.zhidao.support.obu.model.CvxIvpThreatIndInfo -//import com.zhidao.support.obu.model.CvxPtcThreatIndInfo -//import com.zhidao.support.obu.model.CvxRtiThreatIndInfo -//import com.zhidao.support.obu.model.CvxSlwThreatIndInfo -//import com.zhidao.support.obu.model.advance.* - -/** - * @author lixiaopeng - * @date 2021/8/18 - * - * OBU 测试使用 - * 红绿灯 - */ -class ObuRsuTestTriggerReceiver : BroadcastReceiver() { - private var mContext: Context? = null - - companion object { - private const val TAG = "ObuRsuTestTriggerReceiver" - } - - override fun onReceive(context: Context, intent: Intent) { - mContext = context - -// val obuType = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_TYPE_EXTRA_KEY, 0) -// val obuStatus = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_STATES_EXTRA_KEY, 0) -// val obuLevel = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_LEVEL_EXTRA_KEY, 3) -// val indicator = intent.getIntExtra(MogoObuConst.BROADCAST_LIGHT_LEVEL_EXTRA_KEY, 0) -// val pctType = intent.getIntExtra(MogoObuConst.BROADCAST_PTC_INFO_EXTRA_KEY, 0) -// val rtiType = intent.getIntExtra(MogoObuConst.BROADCAST_RTI_TYPE_EXTRA_KEY, 0) -// -// CallerLogger.d( -// "$M_OBU$TAG", "obuStatus:$obuStatus phase:$indicator obuType:$obuType obuLevel:$obuLevel" -// ) -// -// when (obuType) { -// ObuConstants.USE_CASE_ID.IVP -> { //构建红绿灯数据 -// val cvxIvpThreatIndInfo = CvxIvpThreatIndInfo(1, 1, 1L) -// -// val ivpThreat = IvpThreat(1, obuType, null, 1000, obuLevel, 100) -// -// cvxIvpThreatIndInfo.threat_info = ivpThreat -// -// val lightList = listOf( -// Light(1, 0x0, 1000, 3000, 6000, 3000, 100, 1000), -// Light(1, 0x1, 1000, 3000, 6000, 3000, 100, 1000), -// Light(1, 0x2, 1000, 3000, 6000, 3000, 100, 1000), -// Light(1, 0x3, 1000, 3000, 6000, 3000, 100, 1000) -// ) -// val ivpThreatExt = IvpThreatExt(1, 1000, 1000, 0, indicator, lightList) -// cvxIvpThreatIndInfo.ext_info = ivpThreatExt -// cvxIvpThreatIndInfo.status = obuStatus -// cvxIvpThreatIndInfo.link_id = "1" -// -// MogoPrivateObuManager.INSTANCE.getMogoObuListener() -// .onCvxIvpThreatIndInfo(cvxIvpThreatIndInfo) -// } -// -// ObuConstants.USE_CASE_ID.SLW -> { //限速预警 -// val cvxSlwThreatIndInfo = CvxSlwThreatIndInfo(1, 1, 1L) -// val slwThreatExt = SlwThreatExt(1, 2, 6000, 2000) -// -// cvxSlwThreatIndInfo.ext_info = slwThreatExt -// cvxSlwThreatIndInfo.status = obuStatus -// -// MogoPrivateObuManager.INSTANCE.getMogoObuListener() -// .onCvxSlwThreatIndInfo(cvxSlwThreatIndInfo) -// } -// -// //弱势交通参与者碰撞预警,行人/摩托车碰撞预警 -// ObuConstants.USE_CASE_ID.VRUCW -> { -// val cvxPtcIndInfo = CvxPtcThreatIndInfo(1, 1, 1) -// val position = Position(1, 399739429, 1164115207, 20) -// cvxPtcIndInfo.ptc_pos = position -// cvxPtcIndInfo.ptc_id = "111" -// cvxPtcIndInfo.ptc_type = pctType -// cvxPtcIndInfo.status = obuStatus -// -// val v2vThreat = V2vThreat(1, obuType, null, 1000, obuLevel, 100) -// cvxPtcIndInfo.threat_info = v2vThreat -// -// MogoPrivateObuManager.INSTANCE.getMogoObuListener() -// .onCvxPtcThreatIndInfo(cvxPtcIndInfo) -// } -// -// //道路危险情况, 车内标牌, 前方拥堵提醒 -// ObuConstants.USE_CASE_ID.HLW, ObuConstants.USE_CASE_ID.IVS, ObuConstants.USE_CASE_ID.TJW -> { -// val cvxRtiThreatIndInfo = CvxRtiThreatIndInfo(1, 1, 1L) -// val dateTime = DateTime(1, 1, 1, 1, 1, 1, 1, 1) -// val rtiThread = RtiThreat(1, obuType, dateTime, 100000, obuLevel, 100) -// val extInfo = RtiThreatExt(1, rtiType, 0x02, 100000, 100000) -// val position = Position(1, 399739429, 1164115207, 20) -// -// // 位置围栏 -// val zonesInfo = listOf( -// ZoneInfo(1, 2000, 2000, listOf(position)) -// ) -// -// cvxRtiThreatIndInfo.rti_id = "123123" -// cvxRtiThreatIndInfo.zones_info = zonesInfo -// cvxRtiThreatIndInfo.threat_info = rtiThread -// cvxRtiThreatIndInfo.ext_info = extInfo -// cvxRtiThreatIndInfo.status = obuStatus -// -// MogoPrivateObuManager.INSTANCE.getMogoObuListener() -// .onCvxRtiThreatIndInfo(cvxRtiThreatIndInfo) -// } -// } - } - -} diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestNewObuReceiver.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestNewObuReceiver.kt index 8a6eb1f7c0..4e9dc56327 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestNewObuReceiver.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestNewObuReceiver.kt @@ -14,7 +14,7 @@ import com.mogo.support.obu.model.advance.WarningData * @author lixiaopeng * @date 2022/9/8 10:50 上午 * - * 自研OBU 模拟场景 + * 自研OBU 模拟场景 HV */ class ObuTestNewObuReceiver : BroadcastReceiver() { private var mContext: Context? = null @@ -49,6 +49,8 @@ class ObuTestNewObuReceiver : BroadcastReceiver() { // val cvxHvInfoIndInfo = MogoRvWarningData(0, vehBasicsMsg, warningMsg) +// val gnssInfo = MessagePad.GnssInfo() + // MogoPrivateObuNewManager.INSTANCE // .getMogoObuListener() // .onGnssInfo(cvxHvInfoIndInfo) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestTriggerReceiver.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestTriggerReceiver.kt deleted file mode 100644 index 052107741e..0000000000 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/receiver/ObuTestTriggerReceiver.kt +++ /dev/null @@ -1,89 +0,0 @@ -package com.mogo.eagle.core.function.datacenter.obu.receiver - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -//import com.mogo.eagle.core.function.obu.mogo.MogoObuConst -//import com.mogo.eagle.core.function.datacenter.obu.MogoPrivateObuManager -//import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -//import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU -//import com.zhidao.support.obu.constants.ObuConstants -//import com.zhidao.support.obu.model.CvxV2vThreatIndInfo -//import com.zhidao.support.obu.model.advance.MovingObjectInfo -//import com.zhidao.support.obu.model.advance.Position -//import com.zhidao.support.obu.model.advance.V2vThreat -//import com.zhidao.support.obu.model.advance.V2vThreatExt -//import kotlin.random.Random - -/** - * @author xiaoyuzhou - * @date 2021/8/11 10:50 上午 - * - * OBU 测试使用 - */ -class ObuTestTriggerReceiver : BroadcastReceiver() { - private var mContext: Context? = null - - companion object { - private const val TAG = "ObuTestTriggerReceiver" - } - - override fun onReceive(context: Context, intent: Intent) { -// mContext = context -// /** -// * OBU 场景类型 -// * @see com.zhidao.support.obu.constants.ObuConstants.USE_CASE_ID -// */ -// val obuType = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_TYPE_EXTRA_KEY, 0) -// val obuStatus = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_STATES_EXTRA_KEY, 0) -// val obuLevel = intent.getIntExtra(MogoObuConst.BROADCAST_OBU_LEVEL_EXTRA_KEY, 3) -// val obuDirection = -// intent.getIntExtra(MogoObuConst.BROADCAST_OBU_EVENT_DIRECTION_EXTRA_KEY, 0x11) -// CallerLogger.d( -// "$M_OBU$TAG", "obuType:$obuType obuStatus:$obuStatus obuDirection$obuDirection" -// ) -// -// when (obuType) { -// ObuConstants.USE_CASE_ID.EBW, ObuConstants.USE_CASE_ID.FCW, ObuConstants.USE_CASE_ID.ICW, -// ObuConstants.USE_CASE_ID.CLW, ObuConstants.USE_CASE_ID.DNPW, ObuConstants.USE_CASE_ID.AVW, -// ObuConstants.USE_CASE_ID.BSW, ObuConstants.USE_CASE_ID.LCW, ObuConstants.USE_CASE_ID.EVW, ObuConstants.USE_CASE_ID.VRUCW, -// ObuConstants.USE_CASE_ID.SLW, ObuConstants.USE_CASE_ID.LTA, ObuConstants.USE_CASE_ID.HLW, ObuConstants.USE_CASE_ID.IVS, -// ObuConstants.USE_CASE_ID.TJW, ObuConstants.USE_CASE_ID.IVP, ObuConstants.USE_CASE_ID.COC -> { -// -// // 构建测试数据 -// val cvxV2vThreatIndInfo = CvxV2vThreatIndInfo(1, 1, 1L) -// -// val v2vThreat = V2vThreat(1, obuType, null, 1000, obuLevel, 100) -// cvxV2vThreatIndInfo.threat_info = v2vThreat -// -// val v2vThreatExt = -// V2vThreatExt( -// 1, 1, obuDirection, 1, 1 -// ) -// cvxV2vThreatIndInfo.ext_info = v2vThreatExt -// cvxV2vThreatIndInfo.status = obuStatus -// cvxV2vThreatIndInfo.vehicle_id = "123321" -// -// -// // 设置位置 -// val randomLocation = Random.nextInt(100, 2000) -// -// val position = Position( -// 0, (399739429 + randomLocation).toLong(), -// (1164115207 + randomLocation).toLong(), 20 -// ) -// val movingObjectInfo = MovingObjectInfo( -// 0, -// position, -// 1800 +randomLocation, -// 6000 +randomLocation -// ) -// cvxV2vThreatIndInfo.basic_info = movingObjectInfo -// -// MogoPrivateObuManager.INSTANCE.getMogoObuListener() -// .onCvxV2vThreatIndInfo(cvxV2vThreatIndInfo) -// } -// } - } - -} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuLocationWGS84Listener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuLocationWGS84Listener.kt index 16c5fd57b3..8c4eeac160 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuLocationWGS84Listener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuLocationWGS84Listener.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.api.obu -import com.mogo.support.obu.model.MogoObuHvBasicsData +import mogo.telematics.pad.MessagePad /** * OBU HV 自车车辆基础信息数据,自车定位数据 WGS84 坐标系 @@ -15,6 +15,6 @@ interface IMoGoObuLocationWGS84Listener { * @param data 数据 * @since 1.0.0 */ - fun onObuLocationWGS84(data: MogoObuHvBasicsData) + fun onObuLocationWGS84(data: MessagePad.GnssInfo) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt index 8b1370b34b..ac9b5179ed 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt @@ -3,13 +3,14 @@ package com.mogo.eagle.core.function.call.obu import com.mogo.eagle.core.function.api.obu.IMoGoObuLocationWGS84Listener import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.support.obu.model.MogoObuHvBasicsData +import mogo.telematics.pad.MessagePad /** * OBU HV 自车车辆基础信息数据,自车定位数据 WGS84 坐标系 */ object CallerObuLocationWGS84ListenerManager : CallerBase() { - fun invokeObuLocationWGS84(data: MogoObuHvBasicsData) { + fun invokeObuLocationWGS84(data: MessagePad.GnssInfo) { M_LISTENERS.forEach { val tag = it.key val listener = it.value From 84a5f426eb1fa703562bb1377454fcf280af8119 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 14:13:11 +0800 Subject: [PATCH 05/14] =?UTF-8?q?[M2]=20M2=20=E8=BD=AC=E5=90=91=E7=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/passenger/ui/widget/M2TurnLightView.kt | 15 +++++++++++++++ .../src/m2/res/layout/p_m2_fragment.xml | 6 +++--- .../src/m2/res/layout/p_m2_hpmap_fragment.xml | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt new file mode 100644 index 0000000000..bff17e33c0 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt @@ -0,0 +1,15 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import com.mogo.eagle.core.function.hmi.ui.vehicle.TurnLightViewStatus + +/** + * @author: wangmingjun + * @date: 2023/2/13 + */ +class M2TurnLightView @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : TurnLightViewStatus(context, attrs) { +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_fragment.xml index db67764a84..d0b80d16f4 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_fragment.xml @@ -8,7 +8,7 @@ @@ -16,7 +16,7 @@ @@ -26,7 +26,7 @@ diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml index fec8fd6cd4..30a3a45a92 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml @@ -2,7 +2,7 @@ + android:layout_height="@dimen/dp_800"> From 5f363baab684fa6daeb4539e370b7b84127dd281 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 14 Feb 2023 14:23:23 +0800 Subject: [PATCH 06/14] [2.13.0-arhc-opt] fix bug of traffic light --- .../core/MogoTrafficLightManager.kt | 7 --- .../startup/stageone/HttpDnsStartUp.kt | 54 ++----------------- .../data/trafficlight/TrafficLightResult.kt | 22 ++++---- .../trafficlight/TrafficLightStatusHelper.kt | 3 ++ gradle.properties | 20 +++---- .../java/com/mogo/map/AMapViewWrapper.java | 2 +- .../main/java/com/mogo/map/MogoMapView.java | 1 - 7 files changed, 29 insertions(+), 80 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/trafficlight/core/MogoTrafficLightManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/trafficlight/core/MogoTrafficLightManager.kt index 98f7915b94..72b537691f 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/trafficlight/core/MogoTrafficLightManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/trafficlight/core/MogoTrafficLightManager.kt @@ -137,13 +137,6 @@ class MogoTrafficLightManager : IMoGoChassisLocationGCJ02Listener { } } - fun getTrafficLightCurrentState(): TrafficLightDetail? { - trafficLightResult?.let { - return it.laneList - } - return null - } - fun getRoadResult(): RoadIDResult? { return roadIDResult } diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 9b1859c223..3164260e4d 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -1,21 +1,16 @@ package com.mogo.eagle.core.function.startup.stageone import android.content.Context -import com.mogo.aicloud.services.httpdns.HttpDnsConst -import com.mogo.aicloud.services.httpdns.IMogoHttpDns -import com.mogo.aicloud.services.httpdns.MogoHttpDnsHandler import com.mogo.aicloud.services.locationinfo.MogoLocationInfoServices import com.mogo.aicloud.services.socket.IMogoLifecycleListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager import com.mogo.cloud.httpdns.MogoHttpDnsConfig import com.mogo.cloud.httpdns.bean.HttpDnsSimpleLocation import com.mogo.cloud.httpdns.listener.IHttpDnsCurrentLocation -import com.mogo.cloud.httpdns.listener.OnAddressChangedListener import com.mogo.cloud.passport.IMoGoTokenCallback import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.constants.HostConst import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager @@ -25,7 +20,6 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS -import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS import com.mogo.eagle.core.data.map.MogoLocation @@ -58,8 +52,6 @@ class HttpDnsStartUp : AndroidStartup() { // 缓存IP地址 private var cacheIp: String? = null - private lateinit var mogoHttpDns: IMogoHttpDns - private var context: Context? = null private var gotToken = false @@ -77,7 +69,7 @@ class HttpDnsStartUp : AndroidStartup() { override fun create(context: Context): Boolean { this.context = context initGDLoc() - initHttpDns() + preparePassportEnvironment() return true } @@ -85,15 +77,6 @@ class HttpDnsStartUp : AndroidStartup() { CallerMapUIServiceManager.getGDLocationServer(context!!)?.start() } - /** - * 初始化 HttpDNS ,这里会通过一个接口获取所有鹰眼中使用的微服务域名以及端口号 - * 后续的网络请求会通过 HttpDnsInterceptor 进行拦截替换 - */ - private fun initHttpDns() { - mogoHttpDns = MogoHttpDnsHandler.getHttpDnsApi() - preparePassportEnvironment() - } - private fun preparePassportEnvironment() { // 设置网络环境:HTTP_DNS_ENV_QA、HTTP_DNS_ENV_RELEASE、HTTP_DNS_ENV_DEV when (DebugConfig.getNetMode()) { @@ -116,7 +99,6 @@ class HttpDnsStartUp : AndroidStartup() { // clientConfig.socketTechUrl // 设置是否是直播推流的主播 clientConfig.isAnchor = true - clientConfig.loopCheckDelay = (60 * 60 * 2 * 1000).toLong() //todo arrow when (DebugConfig.getCarMachineType()) { DebugConfig.CAR_MACHINE_TYPE_LENOVO -> clientConfig.thirdPartyAppKey = "pfieouqg" else -> clientConfig.thirdPartyAppKey = "wbvpzgar" @@ -146,7 +128,8 @@ class HttpDnsStartUp : AndroidStartup() { return HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) } var mogoLocation: MogoLocation? = null - val locationClient = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() + val locationClient = + CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() if (locationClient != null) { mogoLocation = locationClient } @@ -214,8 +197,6 @@ class HttpDnsStartUp : AndroidStartup() { CallerCloudListenerManager.invokeCloudTokenGot(token, sn) // 异步初始化NetConfig asyncInit() - // HttpDns ttl回调 --- socketTTL -// registerSocketHttpDnsTTL() startSocketService() // 开启每5s/次定位上报 uploadLocPerFiveSecond() @@ -252,35 +233,6 @@ class HttpDnsStartUp : AndroidStartup() { } } - /** - * 请求获取最新的 DNS 微服务 域名信息 - */ - private fun registerSocketHttpDnsTTL() { - mogoHttpDns.addressChangedListener(object : OnAddressChangedListener { - @ChainLog( - linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, - linkCode = CHAIN_LINK_CLOUD, - endpoint = PAD, - nodeAliasCode = CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED, - paramIndexes = [0, 1], - clientPkFileName = "sn" - ) - override fun onAddressChanged(cityCode: String, address: Map?) { - val dnsCacheIp = mogoHttpDns.getCachedHttpDnsIps( - HostConst.SOCKET_CENTER_DOMAIN, - HttpDnsConst.HTTP_DNS_ADDRESS_TYPE_HTTP - ) ?: return - if (dnsCacheIp != cacheIp) { - CallerLogger.d( - SceneConstant.M_MAIN + TAG, - "获取缓存Dns IP : $dnsCacheIp , 原缓存 IP : $cacheIp" - ) - cacheIp = dnsCacheIp - } - } - }) - } - /** * 上传自车位置信息到云端 */ diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt index bea0fc16be..8c9ecfb629 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt @@ -15,15 +15,17 @@ fun TrafficLightResult.toTrafficLightDetail():MessagePad.TrafficLightDetail{ val left = trafficLightBuilder.leftBuilder val mid = trafficLightBuilder.midBuilder val right = trafficLightBuilder.rightBuilder - left.phaseNo = this.laneList.left.phaseNo - left.color = this.laneList.left.color - left.remain = this.laneList.left.remain - mid.phaseNo = this.laneList.mid.phaseNo - mid.color = this.laneList.mid.color - mid.remain = this.laneList.mid.remain - right.phaseNo = this.laneList.right.phaseNo - right.color = this.laneList.right.color - right.remain = this.laneList.right.remain + if(this.laneList != null){ + left.phaseNo = this.laneList.left.phaseNo + left.color = this.laneList.left.color + left.remain = this.laneList.left.remain + mid.phaseNo = this.laneList.mid.phaseNo + mid.color = this.laneList.mid.color + mid.remain = this.laneList.mid.remain + right.phaseNo = this.laneList.right.phaseNo + right.color = this.laneList.right.color + right.remain = this.laneList.right.remain + } return trafficLightBuilder.build() } @@ -39,7 +41,7 @@ data class TrafficLightResult( val lightId: Int, //红绿灯ID val laneNo: Int, //车道号 val arrowNo: Int, //当前车道对应地面要素转向 - val laneList: TrafficLightDetail, //灯态具体信息 + val laneList: TrafficLightDetail?, //灯态具体信息 val flashYellow: Int,// 黄灯总时间 val timeStamp: Long //当前卫星时间,单位:ms ) { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt index 3b6f9ac6ef..1ab8483128 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatusHelper.kt @@ -4,6 +4,9 @@ object TrafficLightStatusHelper { fun getCurrentRoadTrafficLight(trafficLightResult: TrafficLightResult): TrafficLightStatus? { val arrowNo = trafficLightResult.arrowNo + if(trafficLightResult.laneList == null){ + return null + } if (RoadArrow.isLeft(arrowNo) && trafficLightResult.laneNo == -1) { return trafficLightResult.laneList.left } diff --git a/gradle.properties b/gradle.properties index 9c88990a89..dd72d41281 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.daemon=true org.gradle.configureondemand=true org.gradle.parallel=true -org.gradle.jvmargs=-Xmx3048m +org.gradle.jvmargs=-Xmx3072m #开启gradle缓存 org.gradle.caching=true android.enableBuildCache=true @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.1 +MOGO_NETWORK_VERSION=1.4.4.2 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.1 +MOGO_PASSPORT_VERSION=1.4.4.2 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.1 +MOGO_SOCKET_VERSION=1.4.4.2 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.1 +MOGO_REALTIME_VERSION=1.4.4.2 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.1 +MOGO_TANLU_VERSION=1.4.4.2 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.1 +MOGO_LIVE_VERSION=1.4.4.2 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.1 +MOGO_TRAFFICLIVE_VERSION=1.4.4.2 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.1 +MOGO_LOCATION_VERSION=1.4.4.2 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.1 +MOGO_TELEMATIC_VERSION=1.4.4.2 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 8c003a0a5f..e264f883ad 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -126,7 +126,7 @@ public class AMapViewWrapper implements IMogoMapView, private void initViews() { // 初始化首次地图进入的时候的样式, MapAutoApi.INSTANCE.init(context, mapParams);将影响这里的数据 int mapStyle = MapAutoApi.INSTANCE.getMapParams().getStyleMode(); - CallerLogger.INSTANCE.e(M_MAP + TAG, "默认配置地图模式:mapStyle=" + mapStyle); + CallerLogger.INSTANCE.d(M_MAP + TAG, "默认配置地图模式:mapStyle=" + mapStyle); switch (mapStyle) { case MapAutoApi.MAP_STYLE_DAY: mCurrentUI = EnumMapUI.MAP_STYLE_DAY; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java index 538db0e039..62f04538f1 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java @@ -89,7 +89,6 @@ public class MogoMapView extends MogoBaseMapView implements ILifeCycle { } public void setExtraGPSData(MogoLocation gnssInfo) { - getMap().getUIController().setExtraGPSData(gnssInfo); } From 1ebfd603c5b7a65d2da9d28b28b2229c682b221d Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 14:50:14 +0800 Subject: [PATCH 07/14] [M2] M2 pnc UI --- .../mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt | 2 +- .../mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt | 2 +- .../res/drawable/{bg_p_m2_auto_bg.xml => bg_p_m2_auto.xml} | 0 ...ffic_light_background.xml => bg_p_m2_traffic_light.xml} | 0 OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_pnc.xml | 5 +++++ .../src/m2/res/layout/m2_p_traffic_light_view.xml | 2 +- .../src/m2/res/layout/p_m2_driving_info_fragment.xml | 2 +- .../src/m2/res/layout/p_m2_hpmap_fragment.xml | 7 ++++--- OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml | 1 + 9 files changed, 14 insertions(+), 7 deletions(-) rename OCH/mogo-och-bus-passenger/src/m2/res/drawable/{bg_p_m2_auto_bg.xml => bg_p_m2_auto.xml} (100%) rename OCH/mogo-och-bus-passenger/src/m2/res/drawable/{bg_p_m2_traffic_light_background.xml => bg_p_m2_traffic_light.xml} (100%) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_pnc.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 9b8c4737c8..afe9ab272b 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -111,7 +111,7 @@ class PM2DrivingInfoFragment : context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.auto_button_bg) } }else{ context?.let { auto_tv.setTextColor(ContextCompat.getColor(it,R.color.m2_button_auto_tv_color)) } - context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.bg_p_m2_auto_bg) } + context?.let { auto_tv.background = ContextCompat.getDrawable(it,R.drawable.bg_p_m2_auto) } } } diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt index bff17e33c0..ffaa7b1d14 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2TurnLightView.kt @@ -11,5 +11,5 @@ import com.mogo.eagle.core.function.hmi.ui.vehicle.TurnLightViewStatus */ class M2TurnLightView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null -) : TurnLightViewStatus(context, attrs) { +) { } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto_bg.xml rename to OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_auto.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_traffic_light_background.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_traffic_light.xml similarity index 100% rename from OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_traffic_light_background.xml rename to OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_p_m2_traffic_light.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_pnc.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_pnc.xml new file mode 100644 index 0000000000..0357ebb192 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/bg_pnc.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/m2_p_traffic_light_view.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/m2_p_traffic_light_view.xml index 7762402143..b9dcb334f0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/m2_p_traffic_light_view.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/m2_p_traffic_light_view.xml @@ -10,7 +10,7 @@ android:id="@+id/m2_p_traffic_light_bg" android:layout_width="@dimen/m2_p_light_width" android:layout_height="@dimen/m2_p_light_height" - android:background="@drawable/bg_p_m2_auto_bg" + android:background="@drawable/bg_p_m2_auto" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 05b1b51d32..8440be86dd 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -51,7 +51,7 @@ android:id="@+id/auto_tv" android:layout_width="@dimen/dp_66" android:layout_height="@dimen/dp_38" - android:background="@drawable/bg_p_m2_auto_bg" + android:background="@drawable/bg_p_m2_auto" android:layout_marginTop="@dimen/dp_12" android:text="@string/m2_p_auto_tv" android:textSize="@dimen/dp_18" diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml index 30a3a45a92..96a4bb5148 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_hpmap_fragment.xml @@ -23,9 +23,10 @@ + app:layout_constraintRight_toRightOf="parent" + app:background_resource="@drawable/bg_pnc" /> \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml index 19447f7f10..da9dd9c7d0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml @@ -9,6 +9,7 @@ #0B1E38 #6B7EA6 #2D3E5F + #A5D8FF #FFFFA28B #FFDA1100 From 4f25b0fd436467f4a9d30c216f1af7a09f2de91b Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 14 Feb 2023 15:17:40 +0800 Subject: [PATCH 08/14] [2.13.0-arch-opt] merge 2.14.0 line id func --- .../passenger/model/BusPassengerModel.java | 5 ++ .../mogo/och/bus/presenter/BusPresenter.java | 5 ++ .../sweeper/presenter/SweeperPresenter.java | 5 ++ .../passenger/model/TaxiPassengerModel.java | 4 + .../com/mogo/och/taxi/model/TaxiModel.java | 5 ++ .../eagle/function/biz/FuncBizProvider.kt | 14 ++++ .../function/biz/v2x/road/ILineUploadApi.kt | 16 ++++ .../biz/v2x/road/LineUploadManager.kt | 75 +++++++++++++++++++ .../hmi/ui/widget/SteeringWheelView.java | 5 ++ .../src/main/res/values/attr.xml | 1 + .../routeoverlay/MogoRouteOverlayManager.java | 5 ++ .../eagle/core/data/v2x/LineUploadData.kt | 6 ++ .../autopilot/IMoGoAutopilotStatusListener.kt | 7 +- .../CallerAutoPilotStatusListenerManager.kt | 18 +++++ .../com/mogo/commons/constants/HostConst.java | 1 + 15 files changed, 171 insertions(+), 1 deletion(-) create mode 100644 core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/ILineUploadApi.kt create mode 100644 core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/LineUploadData.kt diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index b4cdfb2088..1d1af8189c 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -334,6 +334,11 @@ public class BusPassengerModel { private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){ + @Override + public void onAutopilotRouteLineId(long lineId) { + + } + @Override public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index afdc84c3cf..bedbb415d9 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -267,6 +267,11 @@ public class BusPresenter extends Presenter onAutopilotStatusResponse(info); } + @Override + public void onAutopilotRouteLineId(long lineId) { + + } + @Override public void onAutopilotGuardian(MogoReportMsg.MogoReportMessage guardianInfo) { BusTrajectoryManager.getInstance().onAutopilotGuardian(guardianInfo); diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java index e0534eaf5e..8ce4713150 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/presenter/SweeperPresenter.java @@ -161,6 +161,11 @@ public class SweeperPresenter extends Presenter } + @Override + public void onAutopilotRouteLineId(long lineId) { + + } + @Override public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { if (autopilotStatusInfo == null) return; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 74ec039d91..9a7964d873 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -499,6 +499,10 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener(){ + @Override + public void onAutopilotRouteLineId(long lineId) { + + } @Override public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 2b7db7e77d..188faf6027 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -1144,6 +1144,11 @@ public class TaxiModel { private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() { + @Override + public void onAutopilotRouteLineId(long lineId) { + + } + @Override public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt index 86a2933f6e..c820952fa3 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt @@ -4,15 +4,18 @@ import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.camera.CameraEntity +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.biz.IMoGoFuncBizProvider import com.mogo.eagle.core.function.api.biz.IMoGoNoticeNetCallBack +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.function.biz.dispatch.DispatchAutoPilotManager.Companion.dispatchAutoPilotManager import com.mogo.eagle.function.biz.monitoring.CronTaskManager.Companion.cronTaskManager import com.mogo.eagle.function.biz.notice.NoticeSocketManager.Companion.noticeSocketManager import com.mogo.eagle.function.biz.notice.network.NoticeNetWorkManager import com.mogo.eagle.function.biz.v2x.overview.OverViewDataManager import com.mogo.eagle.function.biz.v2x.overview.db.OverviewDb +import com.mogo.eagle.function.biz.v2x.road.LineUploadManager import com.mogo.eagle.function.biz.v2x.trafficlight.core.MogoTrafficLightManager import com.mogo.eagle.function.biz.v2x.vip.VipCarManager @@ -22,13 +25,19 @@ class FuncBizProvider : IMoGoFuncBizProvider { override val functionName: String get() = "FuncBiz" + private var mContext:Context? = null + override fun init(context: Context) { + mContext = context noticeSocketManager.init(context) dispatchAutoPilotManager.init(context) cronTaskManager.startCronTask() OverviewDb.getDb(context) MogoTrafficLightManager.INSTANCE.initServer(context) VipCarManager.INSTANCE.initServer(context) + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + LineUploadManager.getInstance(context)?.init() + } // RedLightWarningManager.INSTANCE.listenTrafficLight() } @@ -81,6 +90,11 @@ class FuncBizProvider : IMoGoFuncBizProvider { cronTaskManager.release() VipCarManager.INSTANCE.destroy() + if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ + mContext?.let { + LineUploadManager.getInstance(it)?.onDestroy() + } + } // RedLightWarningManager.INSTANCE.onDestroy() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/ILineUploadApi.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/ILineUploadApi.kt new file mode 100644 index 0000000000..aed87f69b2 --- /dev/null +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/ILineUploadApi.kt @@ -0,0 +1,16 @@ +package com.mogo.eagle.function.biz.v2x.road + +import com.mogo.eagle.core.data.BaseData +import com.mogo.eagle.core.data.v2x.LineUploadData +import io.reactivex.Observable +import retrofit2.http.Body +import retrofit2.http.Headers +import retrofit2.http.POST + +interface ILineUploadApi { + + @Headers("Content-type:application/json;charset=UTF-8" ) + @POST( "" ) + fun uploadLineId(@Body lineId: LineUploadData): Observable + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt new file mode 100644 index 0000000000..790ca44ab0 --- /dev/null +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt @@ -0,0 +1,75 @@ +package com.mogo.eagle.function.biz.v2x.road + +import android.content.Context +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.constants.HostConst.DATA_CENTER_HOST +import com.mogo.eagle.core.data.v2x.LineUploadData +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers + +class LineUploadManager private constructor(context: Context) : IMoGoAutopilotStatusListener { + + companion object { + + private const val TAG = "LineUploadManager" + + @Volatile + private var lineUploadManager: LineUploadManager? = null + + @Synchronized + fun getInstance(context: Context): LineUploadManager? { + if (lineUploadManager == null) { + synchronized(LineUploadManager::class.java) { + if (lineUploadManager == null) { + lineUploadManager = LineUploadManager(context) + } + } + } + return lineUploadManager + } + } + + private var mContext: Context? = null + private var disposable: Disposable? = null + + init { + mContext = context + } + + fun init() { + CallerAutoPilotStatusListenerManager.addListener(TAG, this) + } + + override fun onAutopilotRouteLineId(lineId: Long) { + super.onAutopilotRouteLineId(lineId) + if (lineId > 0) { + uploadLine(lineId) + } + } + + private fun uploadLine(lineId: Long) { + val lineUploadData = LineUploadData(lineId, MoGoAiCloudClientConfig.getInstance().sn) + disposable = MoGoRetrofitFactory.getInstance(DATA_CENTER_HOST) + .create(ILineUploadApi::class.java) + .uploadLineId(lineUploadData) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ data -> + CallerLogger.d(TAG, " uploadLine : $data") + }, { + CallerLogger.d(TAG, "e : ${it.message}") + }) + } + + fun onDestroy() { + mContext = null + disposable?.dispose() + CallerAutoPilotStatusListenerManager.removeListener(TAG) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java index b32cfeeab4..f21e6f73e2 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java @@ -104,6 +104,11 @@ public class SteeringWheelView extends ConstraintLayout implements private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() { + @Override + public void onAutopilotRouteLineId(long lineId) { + + } + @Override public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index 2b18f99042..4f2048218d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -71,6 +71,7 @@ + diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java index 9809818667..eeb872d6d3 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/routeoverlay/MogoRouteOverlayManager.java @@ -126,4 +126,9 @@ public class MogoRouteOverlayManager implements @Override public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { } + + @Override + public void onAutopilotRouteLineId(long lineId) { + + } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/LineUploadData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/LineUploadData.kt new file mode 100644 index 0000000000..8700029ed9 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/LineUploadData.kt @@ -0,0 +1,6 @@ +package com.mogo.eagle.core.data.v2x + +/** + * 路线上报 + */ +data class LineUploadData(val lineId:Long,val sn:String) \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt index 86208cc151..87d4452fb7 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatusListener.kt @@ -44,7 +44,12 @@ interface IMoGoAutopilotStatusListener { /** * 工控机主动查询 AdasManager#sendStatusQueryReq(),后会收到如下回调 */ - fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) { } + fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {} + + /** + * 自动驾驶路线ID回调 + */ + fun onAutopilotRouteLineId(lineId: Long){} companion object { /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt index e158d6bced..a8e8131ab8 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt @@ -7,6 +7,9 @@ import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.eagle.core.utilcode.util.GsonUtils import mogo.telematics.pad.MessagePad import mogo_msg.MogoReportMsg +import system_master.* +import java.util.concurrent.ConcurrentHashMap +import kotlin.properties.Delegates import system_master.SystemStatusInfo /** @@ -20,6 +23,20 @@ object CallerAutoPilotStatusListenerManager : CallerBase + if(newValue == null){ + return@observable + } + M_AUTOPILOT_STATUS_LISTENERS.forEach { + val listener = it.value + listener.onAutopilotRouteLineId(newValue) + } + } + + // 存储所有注册了监听的对象,invokeXXXX进行遍历回调,将信息同步 + private val M_AUTOPILOT_STATUS_LISTENERS: ConcurrentHashMap = + ConcurrentHashMap() + @Volatile private var autoPilotMessageCode: String = "" @@ -167,6 +184,7 @@ object CallerAutoPilotStatusListenerManager : CallerBase Date: Tue, 14 Feb 2023 16:02:43 +0800 Subject: [PATCH 09/14] =?UTF-8?q?[M2]=20M2=20=E5=9B=BE=E7=89=87+=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/video/PM2VideoFragment.kt | 88 ++++++++++++++----- 1 file changed, 68 insertions(+), 20 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt index a45b56dc64..722370ee9e 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/video/PM2VideoFragment.kt @@ -51,34 +51,82 @@ class PM2VideoFragment : arrayListOf.clear() arrayListOf.add( RotationItem( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558672856/小宝宝.mp4", - 1, - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559345882/1.png", - "小宝宝" - ) - ) - arrayListOf.add( - RotationItem( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559367261/2.png", + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357256102/1.jpg", 0, "", - "小猫" + "1" ) ) arrayListOf.add( RotationItem( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656558730074/星空.mp4", - 1, - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559406169/4.png", - "星空" - ) - ) - arrayListOf.add( - RotationItem( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1656559384635/3.png", + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357382357/2.png", 0, "", - "大海" + "2" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357557335/3.mp4", + 1, + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357382357/2.png", + "3" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357598483/4.jpg", + 0, + "", + "4" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357834634/5.m4v", + 1, + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357598483/4.jpg", + "5" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676358660379/6.m4v", + 1, + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676357598483/4.jpg", + "6" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360154589/7.jpg", + 1, + "", + "7" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360185500/8.jpg", + 0, + "", + "8" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360224773/9.png", + 0, + "", + "9" + ) + ) + arrayListOf.add( + RotationItem( + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360274126/10.mp4", + 1, + "https://img.zhidaohulian.com/fileServer/online_car_hailing/1676360224773/9.png", + "10" ) ) } From 8c7cb487aa6c546af90d03c763443b934c19468e Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 14 Feb 2023 17:14:17 +0800 Subject: [PATCH 10/14] =?UTF-8?q?[Feat]=E6=94=AF=E6=8C=81=E8=B7=A8?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E8=B0=83=E7=94=A8=E5=8F=B8=E4=B9=98=E5=B1=8F?= =?UTF-8?q?=E9=80=9A=E4=BF=A1=E7=9A=84=E8=83=BD=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoTelematicProvider.kt | 13 +++++++++++++ .../autopilot/telematic/TeleMsgHandler.kt | 8 ++++++++ .../core/data/telematic/TelematicConstant.kt | 7 +++++++ .../api/telematic/IMogoTelematicProvider.kt | 4 ++++ .../api/telematic/IReceivedMsgListener.kt | 5 +++++ .../telematic/CallerTelematicListenerManager.kt | 14 ++++++++++++++ .../call/telematic/CallerTelematicManager.kt | 16 ++++++++++++++++ 7 files changed, 67 insertions(+) create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IReceivedMsgListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicListenerManager.kt diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoTelematicProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoTelematicProvider.kt index b1f0fd6a96..12eeedf1da 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoTelematicProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoTelematicProvider.kt @@ -4,6 +4,7 @@ import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.telematic.IMogoTelematicProvider +import com.mogo.telematic.MogoProtocolMsg import com.mogo.telematic.NSDNettyManager @Route(path = MogoServicePaths.PATH_TELEMATIC_PROVIDER) @@ -26,4 +27,16 @@ class MoGoTelematicProvider: IMogoTelematicProvider { override fun getServerToken(): String { return NSDNettyManager.getInstance().serverSn } + + override fun sendMsgToAllClients(type: Int, byteArray: ByteArray) { + NSDNettyManager.getInstance().sendMsgToAllClients( + MogoProtocolMsg(type, byteArray.size, byteArray) + ) + } + + override fun sendMsgToServer(type: Int, byteArray: ByteArray) { + NSDNettyManager.getInstance().sendMogoProtocolMsgToServer( + MogoProtocolMsg(type, byteArray.size, byteArray), + null) + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt index 17471344ec..5144d53600 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt @@ -8,10 +8,12 @@ import com.mogo.eagle.core.data.app.AppConfigInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS +import com.mogo.eagle.core.data.telematic.TelematicConstant import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setDemoMode import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.setIgnoreConditionDraw import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.ToastUtils @@ -122,6 +124,9 @@ class TeleMsgHandler : IMsgHandler { } } } + TelematicConstant.BUSINESS_STRING -> { + CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.BUSINESS_STRING, it.body) + } else -> { } } @@ -166,6 +171,9 @@ class TeleMsgHandler : IMsgHandler { invokeNettyConnResult("司机屏SN未获取到,不发送给乘客屏") } } + TelematicConstant.BUSINESS_STRING -> { + CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.BUSINESS_STRING, it.body) + } else -> { } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt new file mode 100644 index 0000000000..6c02b811db --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/telematic/TelematicConstant.kt @@ -0,0 +1,7 @@ +package com.mogo.eagle.core.data.telematic + +class TelematicConstant { + companion object { + const val BUSINESS_STRING = 100 + } +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IMogoTelematicProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IMogoTelematicProvider.kt index 70303c7b99..39ff7d0f62 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IMogoTelematicProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IMogoTelematicProvider.kt @@ -10,4 +10,8 @@ interface IMogoTelematicProvider: IProvider { fun getServerIp(): String fun getServerToken(): String + + fun sendMsgToAllClients(type: Int, byteArray: ByteArray) + + fun sendMsgToServer(type: Int, byteArray: ByteArray) } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IReceivedMsgListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IReceivedMsgListener.kt new file mode 100644 index 0000000000..c64b114963 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/telematic/IReceivedMsgListener.kt @@ -0,0 +1,5 @@ +package com.mogo.eagle.core.function.api.telematic + +interface IReceivedMsgListener { + fun onReceivedMsg(type: Int, byteArray: ByteArray) +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicListenerManager.kt new file mode 100644 index 0000000000..54201e9325 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicListenerManager.kt @@ -0,0 +1,14 @@ +package com.mogo.eagle.core.function.call.telematic + +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener +import com.mogo.eagle.core.function.call.base.CallerBase + +object CallerTelematicListenerManager: CallerBase() { + + fun invokeReceivedMsg(type: Int, byteArray: ByteArray) { + M_LISTENERS.forEach { + val listener = it.value + listener.onReceivedMsg(type, byteArray) + } + } +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt index 34bf5ea141..c164e12b15 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt @@ -34,4 +34,20 @@ object CallerTelematicManager { fun getServerToken(): String { return providerApi?.getServerToken() ?: "" } + + /** + * 发送数据给所有客户端 + * type:保存在TelematicConstant中 + */ + fun sendMsgToAllClients(type: Int, byteArray: ByteArray) { + providerApi?.sendMsgToAllClients(type, byteArray) + } + + /** + * 发送数据给服务端 + * type:保存在TelematicConstant中 + */ + fun sendMsgToServer(type: Int, byteArray: ByteArray) { + providerApi?.sendMsgToServer(type, byteArray) + } } \ No newline at end of file From 0979e5fd79d721fdccae39c689593bc28ac76fa6 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 18:08:35 +0800 Subject: [PATCH 11/14] =?UTF-8?q?[M2]=20M2=20=E7=8A=B6=E6=80=81=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/M2StatusViewManager.java | 33 +++++++ .../passenger/ui/widget/M2BlueToothView.kt | 34 +++++++ .../passenger/ui/widget/M2StatusBarView.kt | 86 ++++++++++++++++++ .../drawable-nodpi/m2_blue_tooth_close.png | Bin 0 -> 900 bytes .../res/drawable-nodpi/m2_blue_tooth_open.png | Bin 0 -> 838 bytes .../res/drawable-nodpi/m2_status_bar_logo.png | Bin 0 -> 3771 bytes .../res/drawable/m2_power_seekbar_style.xml | 26 ++++++ .../res/layout/p_m2_driving_info_fragment.xml | 2 +- .../m2/res/layout/p_m2_view_blue_tooth.xml | 15 +++ .../m2/res/layout/p_m2_view_status_bar.xml | 72 +++++++++++++++ .../src/m2/res/values/colors.xml | 1 + 11 files changed, 268 insertions(+), 1 deletion(-) create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_open.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_status_bar_logo.png create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml create mode 100644 OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java new file mode 100644 index 0000000000..8966090d91 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/provider/M2StatusViewManager.java @@ -0,0 +1,33 @@ +package com.mogo.och.bus.passenger.provider; + +import android.content.Context; +import android.view.View; + +import com.mogo.och.bus.passenger.ui.widget.M2StatusBarView; +import androidx.annotation.NonNull; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.constants.MogoServicePaths; +import com.mogo.eagle.core.function.api.hmi.view.IStatusViewLayout; + +/** + * @author congtaowang + * @since 2020-01-06 + *

+ * 根据优先级控制显示 window view. + */ +@Route( path = MogoServicePaths.PATH_STATUS_VIEW_MANAGER ) +public class M2StatusViewManager implements IStatusViewLayout { + + + @NonNull + @Override + public View getStatusView(Context context) { + return new M2StatusBarView(context); + } + + @Override + public void init(Context context) { + + } +} diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt new file mode 100644 index 0000000000..2916611b3e --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2BlueToothView.kt @@ -0,0 +1,34 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener +import com.mogo.eagle.core.function.hmi.ui.widget.BlueToothView +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.m2.p_m2_view_blue_tooth.view.* + +/** + * 魔戒蓝牙控件 + * 放置于StatusBar右侧位置 + * todo arrow + */ +class M2BlueToothView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : BlueToothView(context, attrs, defStyleAttr),IMoGoDevaToolsListener { + + init { + LayoutInflater.from(context).inflate(R.layout.p_m2_view_blue_tooth, this, true) + } + + override fun mofangStatus(status: Boolean) { + if (status) { + blueView.setImageResource(R.drawable.m2_blue_tooth_close) + } else { + blueView.setImageResource(R.drawable.m2_blue_tooth_open) + } + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt new file mode 100644 index 0000000000..8eb016875b --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt @@ -0,0 +1,86 @@ +package com.mogo.och.bus.passenger.ui.widget + +import android.content.Context +import android.graphics.Color +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.constraintlayout.widget.ConstraintLayout +import chassis.ChassisStatesOuterClass +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener +import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener +import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener +import com.mogo.eagle.core.function.call.autopilot.CallerBatteryManagementSystemListenerManager +import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager +import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager +import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.m2.p_m2_view_status_bar.view.* +import me.jessyan.autosize.utils.AutoSizeUtils + +/** + * @author: wangmingjun + * @date: 2023/2/14 + */ +class M2StatusBarView @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : ConstraintLayout(context, attrs), IViewControlListener, IMoGoSkinModeChangeListener, + IMoGoBatteryManagementSystemListener { + + companion object { + const val TAG = "M2StatusBarView" + } + + init { + LayoutInflater.from(context).inflate(R.layout.p_m2_view_status_bar, this, true) + setBackgroundColor(Color.WHITE) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + post { + val params: ViewGroup.LayoutParams = getLayoutParams() + params.height = AutoSizeUtils.dp2px(context,47f) + layoutParams = params + } + //添加view控制 + CallerHmiViewControlListenerManager.addListener(TAG,this) + // 添加换肤监听 + CallerSkinModeListenerManager.addListener(TAG, this) + //电量 + CallerBatteryManagementSystemListenerManager.addListener(TAG,this) + + progress.progress = 50 + tv_power_cos.text = "50%" + } + + override fun onSkinModeChange(skinMode: Int) { + when (skinMode) { + 0 -> setStatusBarDarkOrLight(false) + 1 -> setStatusBarDarkOrLight(true) + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerHmiViewControlListenerManager.removeListener(TAG) + CallerSkinModeListenerManager.removeListener(TAG) + CallerDevaToolsManager.hideStatusBar() + } + + override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) { + val bmsSoc = states.bmsSoc + if(bmsSoc >1){ + progress.progress = bmsSoc.toInt() + tv_power_cos.text = "${bmsSoc.toInt()}%" + }else{ + val currenPower = (bmsSoc * 100).toInt() + progress.progress = currenPower + tv_power_cos.text = "$currenPower%" + } + } + + +} \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png b/OCH/mogo-och-bus-passenger/src/m2/res/drawable-nodpi/m2_blue_tooth_close.png new file mode 100644 index 0000000000000000000000000000000000000000..0c292d2cf325ad03f050017fb62bb4dd871cc394 GIT binary patch literal 900 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml new file mode 100644 index 0000000000..3ac0c761ba --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/drawable/m2_power_seekbar_style.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 8440be86dd..d158f9b8b0 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -17,7 +17,7 @@ android:id="@+id/img_drive_bg" android:layout_width="@dimen/dp_290" android:layout_height="@dimen/dp_140" - android:layout_marginTop="@dimen/dp_24" + android:layout_marginTop="@dimen/dp_66" android:layout_marginLeft="@dimen/dp_24" app:layout_constraintTop_toTopOf="parent" app:layout_constraintLeft_toLeftOf="parent" diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml new file mode 100644 index 0000000000..69ae14c394 --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_blue_tooth.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml new file mode 100644 index 0000000000..15a1c12b4f --- /dev/null +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_view_status_bar.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml index da9dd9c7d0..13bd4aff12 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/values/colors.xml @@ -10,6 +10,7 @@ #6B7EA6 #2D3E5F #A5D8FF + #1B2546 #FFFFA28B #FFDA1100 From 87a2c2201a39a8a2a438c3322272ae6212e67c49 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 14 Feb 2023 19:29:38 +0800 Subject: [PATCH 12/14] =?UTF-8?q?[m1]=20[1.0.2]=20[url=20=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E7=94=B1urlConfg.json=20=E6=9D=A5=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E9=85=8D=E7=BD=AE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/bus/passenger/constant/URLConst.kt | 24 ++-------- .../net/BusPassengerServiceManager.kt | 5 +- .../och/bus/passenger/constant/URLConst.kt | 14 ------ .../bus/passenger/model/PM2ServiceManager.kt | 4 +- .../com/mogo/och/bus/constant/URLConst.kt | 15 +----- .../mogo/och/bus/net/OrderServiceManager.kt | 4 +- .../bus/net/login/OchCommonServiceManager.kt | 3 +- .../com/mogo/och/bus/constant/URLConst.kt | 13 ----- .../mogo/och/bus/net/OrderServiceManager.kt | 4 +- .../bus/net/login/OchCommonServiceManager.kt | 3 +- .../module/biz/constant/OchCommonConst.kt | 18 +++---- .../mogo/och/sweeper/constant/SweeperConst.kt | 14 ------ .../sweeper/net/SweeperServiceManager.java | 4 +- .../passenger/constant/TaxiPassengerConst.kt | 14 ------ .../network/TaxiPassengerServiceManager.kt | 4 +- .../com/mogo/och/taxi/constant/TaxiConst.kt | 14 ------ .../och/taxi/network/TaxiServiceManager.kt | 4 +- app/config.json | 24 ---------- app/productFlavors/urlConfig.gradle | 2 +- app/urlConfig.json | 48 +++++++++++++++++++ .../startup/stageone/HttpDnsStartUp.kt | 6 +-- .../eagle/core/data/deva/net/UrlConfig.kt | 10 +++- 22 files changed, 87 insertions(+), 164 deletions(-) delete mode 100644 app/config.json create mode 100644 app/urlConfig.json diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/constant/URLConst.kt b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/constant/URLConst.kt index a6a50f6c37..c0ef94ad99 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/constant/URLConst.kt +++ b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/constant/URLConst.kt @@ -3,38 +3,20 @@ package com.mogo.och.bus.passenger.constant import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.och.common.module.biz.constant.OchCommonConst /** * Created on 2021/12/6 */ class URLConst { companion object { - // shettle 接驳车域名 - private const val Shettle_BASE_URL_OCH_DEV = "https://och-driver-dev.zhidaozhixing.com" - private const val Shettle_BASE_URL_OCH_QA = "https://och-driver-qa.zhidaozhixing.com" - private const val Shettle_BASE_URL_OCH_RELEASE = "https://och-driver.zhidaozhixing.com" - - private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - @JvmStatic fun getBaseUrl(): String { return if(AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)){ - when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> Shettle_BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> Shettle_BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> Shettle_BASE_URL_OCH_RELEASE - else -> Shettle_BASE_URL_OCH_RELEASE - } + OchCommonConst.getShuttleUrl() }else{ - when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } + OchCommonConst.getBaseUrl() } } diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt index ccca599d8f..b6eaf49bce 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/net/BusPassengerServiceManager.kt @@ -5,10 +5,9 @@ import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.getSer import com.mogo.och.bus.passenger.bean.response.BusPassengerRoutesResponse import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.och.bus.passenger.bean.request.BusPassengerQueryLineRequest import com.mogo.och.bus.passenger.bean.response.BusPassengerOperationStatusResponse -import com.mogo.och.common.module.biz.constant.OchCommonConst.Companion.getBaseUrl +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -19,7 +18,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry object BusPassengerServiceManager { private var mBusPassengerServiceApi = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create(PassengerServiceApi::class.java) + MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(PassengerServiceApi::class.java) /** * 获取Bus司机端的sn diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/constant/URLConst.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/constant/URLConst.kt index 5e4200edc5..fb143e1bda 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/constant/URLConst.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/constant/URLConst.kt @@ -9,20 +9,6 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils */ class URLConst { companion object { - // shettle 接驳车域名 - private const val Shettle_BASE_URL_OCH_DEV = "https://och-driver-dev.zhidaozhixing.com" - private const val Shettle_BASE_URL_OCH_QA = "https://och-driver-qa.zhidaozhixing.com" - private const val Shettle_BASE_URL_OCH_RELEASE = "https://och-driver.zhidaozhixing.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> Shettle_BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> Shettle_BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> Shettle_BASE_URL_OCH_RELEASE - else -> Shettle_BASE_URL_OCH_RELEASE - } - } } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ServiceManager.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ServiceManager.kt index 9195d8b19f..4cabbcd805 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ServiceManager.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ServiceManager.kt @@ -7,8 +7,8 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.och.bus.passenger.bean.PM2OperationStatusResponse import com.mogo.och.bus.passenger.bean.PM2QueryLineRequest import com.mogo.och.bus.passenger.bean.PM2RoutesResponse -import com.mogo.och.bus.passenger.constant.URLConst.Companion.getBaseUrl import com.mogo.och.bus.passenger.network.PM2ServiceApi +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -19,7 +19,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry object PM2ServiceManager { private var mBusPassengerServiceApi = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create(PM2ServiceApi::class.java) + MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create(PM2ServiceApi::class.java) /** * 获取Bus司机端的sn diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/constant/URLConst.kt b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/constant/URLConst.kt index 47ee5af7a4..fe41ef967a 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/constant/URLConst.kt +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/constant/URLConst.kt @@ -7,19 +7,6 @@ import com.mogo.commons.debug.DebugConfig */ class URLConst { companion object { - - private const val BASE_URL_OCH_DEV = "https://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } - } + } } \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt index 7790409ac5..9002603bb5 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/OrderServiceManager.kt @@ -5,7 +5,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.och.bus.bean.* -import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -16,7 +16,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry */ object OrderServiceManager { - private val M_SERVICE: IBascApiService = MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + private val M_SERVICE: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( IBascApiService::class.java ) diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt index fcd24dd8d6..83f8dec4ee 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt @@ -11,7 +11,6 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -24,7 +23,7 @@ object OchCommonServiceManager { private const val TAG = "OchCommonServiceManager" private val mLoginServiceApi: OchLoginServiceApi = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( OchLoginServiceApi::class.java ) diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/constant/URLConst.kt b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/constant/URLConst.kt index 5937447191..dce7719222 100644 --- a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/constant/URLConst.kt +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/constant/URLConst.kt @@ -8,18 +8,5 @@ import com.mogo.commons.debug.DebugConfig class URLConst { companion object { - private const val BASE_URL_OCH_DEV = "https://och-driver-dev.zhidaozhixing.com" - private const val BASE_URL_OCH_QA = "https://och-driver-qa.zhidaozhixing.com" - private const val BASE_URL_OCH_RELEASE = "https://och-driver.zhidaozhixing.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } - } } } \ No newline at end of file diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OrderServiceManager.kt b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OrderServiceManager.kt index f37f93a6d5..a239420e1a 100644 --- a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OrderServiceManager.kt +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/OrderServiceManager.kt @@ -5,7 +5,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.och.bus.bean.* -import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -16,7 +16,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry */ object OrderServiceManager { - private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + private val mService: IBascApiService = MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( IBascApiService::class.java ) diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt index fcd24dd8d6..d331b69633 100644 --- a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/net/login/OchCommonServiceManager.kt @@ -11,7 +11,6 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.och.bus.constant.URLConst.Companion.getBaseUrl import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -24,7 +23,7 @@ object OchCommonServiceManager { private const val TAG = "OchCommonServiceManager" private val mLoginServiceApi: OchLoginServiceApi = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + MoGoRetrofitFactory.getInstance(OchCommonConst.getShuttleUrl()).create( OchLoginServiceApi::class.java ) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt index 6e1891710e..2a200b6a86 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt @@ -1,25 +1,19 @@ package com.mogo.och.common.module.biz.constant -import com.mogo.commons.debug.DebugConfig +import com.mogo.eagle.core.data.config.FunctionBuildConfig /** * Created on 2021/12/6 */ class OchCommonConst { companion object { - - private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - @JvmStatic fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } + return FunctionBuildConfig.urlJson.ochUrl + } + @JvmStatic + fun getShuttleUrl(): String { + return FunctionBuildConfig.urlJson.ochUrl } // token 失效 重新获取token const val WAIT_TAKEN = 100046 diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt index 8397cddf95..bd7be321eb 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/constant/SweeperConst.kt @@ -8,20 +8,6 @@ import com.mogo.commons.debug.DebugConfig class SweeperConst { companion object { - private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } - } - // OCH arouter 路由path const val PATH = "/driver/api" diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/net/SweeperServiceManager.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/net/SweeperServiceManager.java index f6cd975dbd..ca1bc2552f 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/net/SweeperServiceManager.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/net/SweeperServiceManager.java @@ -9,6 +9,7 @@ import com.mogo.eagle.core.network.MoGoRetrofitFactory; import com.mogo.eagle.core.network.RequestOptions; import com.mogo.eagle.core.network.SubscribeImpl; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.sweeper.bean.SweeperQueryLinesResponse; import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean; import com.mogo.och.sweeper.bean.SweeperRoutesResponse; @@ -18,7 +19,6 @@ import com.mogo.och.sweeper.bean.SweeperOperationStatusResponse; import com.mogo.och.sweeper.bean.SweeperQueryLineStationsRequest; import com.mogo.och.sweeper.bean.SweeperResetDrivingLineRequest; import com.mogo.och.sweeper.bean.SweeperUpdateSiteStatusRequest; -import com.mogo.och.sweeper.constant.SweeperConst; import com.mogo.och.sweeper.model.SweeperOrderModel; import java.util.List; @@ -45,7 +45,7 @@ public class SweeperServiceManager { } private SweeperServiceManager(){ - mService = MoGoRetrofitFactory.getInstance(SweeperConst.getBaseUrl()).create(ISweeperApiService.class); + mService = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(ISweeperApiService.class); } /** diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt index 06557a70d4..729835b85f 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/constant/TaxiPassengerConst.kt @@ -8,20 +8,6 @@ import com.mogo.commons.debug.DebugConfig class TaxiPassengerConst { companion object { - private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } - } - // OCH arouter 路由path const val PATH = "/passenger/api" diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt index 37e0bc2b39..abd2453751 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.kt @@ -1,7 +1,6 @@ package com.mogo.och.taxi.passenger.network import android.content.Context -import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst.Companion.getBaseUrl import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.getServerToken import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrdersInServiceQueryRespBean import com.mogo.cloud.passport.MoGoAiCloudClientConfig @@ -15,6 +14,7 @@ import com.mogo.och.taxi.passenger.bean.TaxiPassengerScoreUpdateOrderReqBean import com.mogo.och.taxi.passenger.bean.TaxiPassengerAllStarWorld import com.mogo.och.taxi.passenger.bean.TaxiPassengerStartReqBean import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -24,7 +24,7 @@ import com.mogo.och.common.module.biz.network.interceptor.transformTry */ object TaxiPassengerServiceManager { - private val mOCHTaxiServiceApi: TaxiPassengerServiceApi = MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + private val mOCHTaxiServiceApi: TaxiPassengerServiceApi = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( TaxiPassengerServiceApi::class.java ) diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt index 1cfb1ffa69..9fb2851746 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt @@ -8,20 +8,6 @@ import com.mogo.commons.debug.DebugConfig class TaxiConst { companion object { - private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com" - private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com" - private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com" - - @JvmStatic - fun getBaseUrl(): String { - return when (DebugConfig.getNetMode()) { - DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV - DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA - DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE - else -> BASE_URL_OCH_RELEASE - } - } - // OCH arouter 路由path const val PATH = "/driver/api" diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt index 6d85432699..63b5cfa751 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.kt @@ -1,10 +1,10 @@ package com.mogo.och.taxi.network import android.content.Context -import com.mogo.och.taxi.constant.TaxiConst.Companion.getBaseUrl import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl import com.mogo.och.common.module.biz.network.interceptor.transformTry @@ -18,7 +18,7 @@ object TaxiServiceManager { private var mOCHTaxiServiceApi: TaxiServiceApiNew = - MoGoRetrofitFactory.getInstance(getBaseUrl()).create( + MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create( TaxiServiceApiNew::class.java ) diff --git a/app/config.json b/app/config.json deleted file mode 100644 index 892a7a5ede..0000000000 --- a/app/config.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "mogo": { - "qa": { - "och_url": "https://tech-qa.zhidaohulian.com" - }, - "online": { - "och_url": "https://tech-qa.zhidaohulian.com" - }, - "demo": { - "och_url": "https://tech-qa.zhidaohulian.com" - } - }, - "dali": { - "qa": { - "och_url": "https://tech-qa.zhidaohulian.com" - }, - "online": { - "och_url": "https://tech-qa.zhidaohulian.com" - }, - "demo": { - "och_url": "https://tech-qa.zhidaohulian.com" - } - } -} diff --git a/app/productFlavors/urlConfig.gradle b/app/productFlavors/urlConfig.gradle index 0a8e1052d1..36b03ccdb7 100644 --- a/app/productFlavors/urlConfig.gradle +++ b/app/productFlavors/urlConfig.gradle @@ -28,7 +28,7 @@ project.android.applicationVariants.all { variant -> Object readFileToJson(project, env) { try { // 加载config.json 文件 - File file = new File("${rootDir}/app/config.json") + File file = new File("${rootDir}/app/urlConfig.json") def jsonSlurper = new JsonSlurper() // 解析json def config = jsonSlurper.parse(file) diff --git a/app/urlConfig.json b/app/urlConfig.json new file mode 100644 index 0000000000..b61bbc5e97 --- /dev/null +++ b/app/urlConfig.json @@ -0,0 +1,48 @@ +{ + "mogo": { + "qa": { + "och_url": "https://tech-qa.zhidaohulian.com", + "shuttle_url": "https://och-driver-qa.zhidaozhixing.com", + "passport_url": "", + "socket_base_url": "", + "socket_tech_url": "" + }, + "online": { + "och_url": "http://tech-dev.zhidaohulian.com", + "shuttle_url": "https://och-driver.zhidaozhixing.com", + "passport_url": "", + "socket_base_url": "", + "socket_tech_url": "" + }, + "demo": { + "och_url": "http://tech-dev.zhidaohulian.com", + "shuttle_url": "https://och-driver-dev.zhidaozhixing.com", + "passport_url": "", + "socket_base_url": "", + "socket_tech_url": "" + } + }, + "dali": { + "qa": { + "och_url": "https://tech-qa.zhidaohulian.com", + "shuttle_url": "https://och-driver-qa.zhidaozhixing.com", + "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", + "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + }, + "online": { + "och_url": "https://tech-qa.zhidaohulian.com", + "shuttle_url": "https://och-driver.zhidaozhixing.com", + "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", + "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + }, + "demo": { + "och_url": "https://tech-qa.zhidaohulian.com", + "shuttle_url": "https://och-driver-dev.zhidaozhixing.com", + "passport_url": "https://och-a.zhidaozhixing.com/arch/passport/", + "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", + "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/" + } + } +} diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 3164260e4d..063358e94f 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -94,9 +94,9 @@ class HttpDnsStartUp : AndroidStartup() { clientConfig.isUseOriginSocket = true // 设置是否输出网络日志 clientConfig.isShowNetDebugLog = false -// clientConfig.passportUrl //todo yakun -// clientConfig.socketBaseUrl -// clientConfig.socketTechUrl + clientConfig.passportUrl = FunctionBuildConfig.urlJson.passportUrl + clientConfig.socketBaseUrl = FunctionBuildConfig.urlJson.socketBaseUrl + clientConfig.socketTechUrl = FunctionBuildConfig.urlJson.socketTechUrl // 设置是否是直播推流的主播 clientConfig.isAnchor = true when (DebugConfig.getCarMachineType()) { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/net/UrlConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/net/UrlConfig.kt index 31269b7552..a6eb7af2cb 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/net/UrlConfig.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/net/UrlConfig.kt @@ -4,5 +4,13 @@ import com.google.gson.annotations.SerializedName data class UrlConfig( @SerializedName("och_url") - val ochUrl: String + val ochUrl: String, + @SerializedName("shuttle_url") + val shuttleUrl: String, + @SerializedName("passport_url") + val passportUrl: String, + @SerializedName("socket_base_url") + val socketBaseUrl: String, + @SerializedName("socket_tech_url") + val socketTechUrl: String ) \ No newline at end of file From 528bd960498d2a26b6de668d7a6ab7fe137393c5 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 20:18:56 +0800 Subject: [PATCH 13/14] =?UTF-8?q?[M2]=20M2=20=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E4=B9=98=E5=AE=A2=E5=B1=8F=E9=80=9A=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bus/passenger/model/PM2DrivingModel.kt | 23 ++++++++++ .../res/layout/p_m2_driving_info_fragment.xml | 3 +- .../mogo/och/bus/presenter/BusPresenter.java | 2 + .../src/main/res/values/strings.xml | 2 +- .../com/mogo/och/bus/model/OrderModel.java | 42 +++++++++++++++++++ .../och/common/module/bean/AppConnectMsg.kt | 7 ++++ 6 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index e5dd305e5b..7f354e74be 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -6,13 +6,17 @@ import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.data.telematic.TelematicConstant import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R @@ -24,8 +28,10 @@ import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.PM2ModelLoopManager +import com.mogo.och.common.module.bean.AppConnectMsg import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil +import com.mogo.och.common.module.voice.VoiceNotice.showNotice import mogo.telematics.pad.MessagePad import kotlin.math.abs @@ -82,6 +88,8 @@ class PM2DrivingModel private constructor() { // 定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, mMapLocationListener) CallerChassisLocationGCJ02ListenerManager.setListenerHz(TAG,5)//设置5hz, 1s返回一次 + + CallerTelematicListenerManager.addListener(TAG,mReceivedMsgListener) } fun releaseListener(){ @@ -100,6 +108,21 @@ class PM2DrivingModel private constructor() { mAutoStatusCallback = autoPilotStatusCallback } + private val mReceivedMsgListener: IReceivedMsgListener = + object : IReceivedMsgListener{ + override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息 + if (TelematicConstant.BUSINESS_STRING == type){ + val msg = GsonUtils.fromJson(byteArray.toString(),AppConnectMsg::class.java) as AppConnectMsg + if (msg.isPlay){ //播报 + showNotice(msg.msg) + } + if (msg.isViewShow){//显示 + } + + } + } + } + private val mMapLocationListener: IMoGoChassisLocationGCJ02Listener = object : IMoGoChassisLocationGCJ02Listener{ override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index d158f9b8b0..a6998e2d10 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -156,7 +156,8 @@ android:textSize="@dimen/dp_42" android:textStyle="bold" android:text="--" - app:layout_constraintTop_toTopOf="@+id/img_time_clock_bg" + android:layout_marginTop="@dimen/dp_30" + app:layout_constraintTop_toTopOf="@+id/img_time_bg" app:layout_constraintLeft_toLeftOf="@+id/speed_tv" android:textColor="@color/m2_current_time_tv_color"/> diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 517e27455a..650893f452 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -311,9 +311,11 @@ public class BusPresenter extends Presenter int passengerNum = passenger.passengerSize; if (passengerNum > 1){ //多人播报 "x人" ---》x人核验通过 VoiceNotice.showNotice(passengerNum+"人核验通过", AIAssist.LEVEL3); + OrderModel.getInstance().sendWriteOffNumToClient(passengerNum+"人核验通过"); }else { //是 1 播放 "滴" 2022.11.09 改为: "核验通过" // mView.playDI(); VoiceNotice.showNotice("核验通过", AIAssist.LEVEL3); + OrderModel.getInstance().sendWriteOffNumToClient("核验通过"); } } diff --git a/OCH/mogo-och-bus/src/main/res/values/strings.xml b/OCH/mogo-och-bus/src/main/res/values/strings.xml index a7829fce0a..737487ec70 100644 --- a/OCH/mogo-och-bus/src/main/res/values/strings.xml +++ b/OCH/mogo-och-bus/src/main/res/values/strings.xml @@ -42,7 +42,7 @@ - 已到达%1$s,带好随身物品,下车请注意。 + 已到达%1$s,带好随身物品,下车请注意安全。 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。 diff --git a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java index 60d51e5d2a..cf7b3000b2 100644 --- a/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-bus/src/shuttle/java/com/mogo/och/bus/model/OrderModel.java @@ -24,6 +24,7 @@ import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.BaseData; import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.data.telematic.TelematicConstant; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; @@ -32,7 +33,9 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ20ListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.GsonUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -52,6 +55,7 @@ import com.mogo.och.bus.net.OrderServiceManager; import com.mogo.och.bus.util.BusAnalyticsManager; import com.mogo.och.bus.util.BusSendTripInfoManager; import com.mogo.och.bus.util.BusTrajectoryManager; +import com.mogo.och.common.module.bean.AppConnectMsg; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.common.socketmessage.data.OCHOperationalMessage; import com.mogo.och.common.module.biz.constant.OchCommonConst; @@ -554,6 +558,8 @@ public class OrderModel { leaveTTSTips(nextStation); + sendStartStationToClient(nextStation); + if (busRoutesResult != null) { boolean isLastStop = false; if (leaveIndex + 1 == stationList.size() - 1) { @@ -685,6 +691,41 @@ public class OrderModel { VoiceNotice.showNotice(String.format(mContext .getString(R.string.bus_arrived_station_tip), arriveStation)); + + sendArrivedStationToClient(arriveStation); + } + + private void sendArrivedStationToClient(String arriveStation) { + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext + .getString(R.string.bus_arrived_station_tip), + arriveStation)); + CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); + } + + private void sendStartStationToClient(String nextStation) { + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext + .getString(R.string.bus_leave_station_tip), + nextStation)); + UiThreadHandler.postDelayed(()->{ + CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); + },DELAY_10S); + } + + private void sendEndTaskToClient() { + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext + .getString(R.string.bus_end_task_tip)); + + CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); + } + + public void sendWriteOffNumToClient(String msg){ + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg); + + CallerTelematicManager.INSTANCE.sendMsgToAllClients(TelematicConstant.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); } /** @@ -983,6 +1024,7 @@ public class OrderModel { removeTipRunnables(); // startOrStopQueryPassengerWriteOff(false); VoiceNotice.showNotice(mContext.getString(R.string.bus_end_task_tip)); + sendEndTaskToClient(); } } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt new file mode 100644 index 0000000000..402557066e --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt @@ -0,0 +1,7 @@ +package com.mogo.och.common.module.bean + +/** + * @author: wangmingjun + * @date: 2023/2/14 + */ +data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String) From 336b6030b60f1fa0945a4aaa40958d907fe2dbf3 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Tue, 14 Feb 2023 21:00:13 +0800 Subject: [PATCH 14/14] [M2] M2 opt --- .../com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt | 2 +- .../src/m2/res/layout/p_m2_driving_info_fragment.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt index 8eb016875b..d1a8e6a1ff 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt +++ b/OCH/mogo-och-bus-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/widget/M2StatusBarView.kt @@ -35,7 +35,7 @@ class M2StatusBarView @JvmOverloads constructor( init { LayoutInflater.from(context).inflate(R.layout.p_m2_view_status_bar, this, true) - setBackgroundColor(Color.WHITE) + setBackgroundColor(Color.TRANSPARENT) } override fun onAttachedToWindow() { diff --git a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index a6998e2d10..36c702c121 100644 --- a/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -34,6 +34,7 @@ android:textStyle="bold" app:layout_constraintLeft_toLeftOf="@+id/img_drive_bg" android:layout_marginLeft="@dimen/dp_24" + android:layout_marginTop="@dimen/dp_8" app:layout_constraintTop_toTopOf="@+id/img_drive_bg" tools:ignore="SpUsage" />