8015 开发小计

提交代码密码:Maolin@369
yangmaolin Ymaolin03d%
打开ADB:   #*#4479*#*
docker exec -it -u root ZH_yangmaolin /bin/bash
工程模式
am start -n com.saicmotor.media/.view.activity.MediaActivity
am start -n com.bmit.engineermode/.MainPageActivity
adb shell am start -n com.android.car/.am.TestCarActivity
logcat |grep numArr
Camera配置文件:  atc_camera_config.xml

用这个Intent ,两个都能拉起来
am start -a android.settings.SETTINGS
1、从服务器上下载编译文件
\\192.168.0.37\jenkins_jobs\workspace\SOIMT_jfrog_files_download\zhonghong\
\\192.168.0.195\share\OIMT_上汽海外\svn_all\外部\SOIMT提供资料\000 开发设计总体需求\03-开发类\00-接口库和文档(明月发布)

从本地上传文件
scp filename  zhonghong@10.30.4.55:/app2/docker_runner/ZH/share/

上传Jar包
https://teams.microsoft.com/_#/FileBrowserTabApp/SAIC%202.0C2%E5%B9%B3%E5%8F%B0%E9%A1%B9%E7%9B%AE?threadId=19:40ad7ec6cb7c46d28dc3c5540a7e8ce2@thread.tacv2&ctx=channel

http://192.168.0.162:8088/view/I_8015/job/SOIMT_jfrog_files_download/     下载上传文件
\\192.168.0.195\share\OIMT_上汽海外\MCU版本
软件版本:
\\192.168.0.37\jenkins_jobs\workspace\SOIMT_jfrog_files_download\SAIC2.0C2\SOC\Nightly

su \r setprop bmi.service.adb.root 1 \r
adb root & remount \r
echo "device" > /sys/class/dual_role_usb/dual-role-usb20/data_role \r
41f发02 70 01

虚拟机配置:
C:\Windows\System32\drivers\etc\hosts
#内网10.30.1.7 uag01.soimtvdi.local
61.169.5.66 uag.soimtvdi.local
10.30.4.61 sso.soimt.intra

https://uag.soimtvdi.local:9000

\\192.168.0.195\share\OIMT_上汽海外\版本\EH32_明月版本\


adb shell am start -n com.zhonghong.tbox/.MainActivity

adb shell am start -n com.android.car/.am.TestCarActivity
车控车设 依赖配置字 @杨茂林 @阿拉丁神灯 
- C00D byte1 车速感应助力转向 0x01 SSPS车速感应助力转向
- C008 byte2 国家区域代码 0x06泰国
然后命令进入:
adb shell am start -n com.saicmotor.vehiclesetting/.ui.VehicleSettingActivity


adb shell am start -n com.saicmotor.caradapter


adb shell am start -n 
2、ADB
setprop bmi.service.adb.root 1
setenforce 0pppppPPP
adb root & remount
echo "device" > /sys/class/dual_role_usb/dual-role-usb20/data_role

3、账号/密码

虚拟机:uag.soimtvdi.local:9000

                    VDI密码
yangmaolin Ymaolin03d%

Bug系统:
https://dev.azure.com/saic-iov/
密码
yangmaolin@oimt.tech/Zz4898902
3fuay+8K   Maolin666@

登录代码服务器:

ssh zhonghong@10.30.4.55
zhonghong@123

docker start ZH_yangmaolin

docker exec -it -u root ZH_yangmaolin /bin/bash


gerrit系统密码
Zz@4898902


车辆管理:!My12345
4、
/system/framework/android.car.jar

【腾讯文档】SAIC平台-CarService接口ID-定义文档_20231220
https://docs.qq.com/sheet/DUGVYWUdNbm1kd0p5?tab=000003

进入编译服务器
5 、vi /app2/docker_runner/ZH/share/hardware.interfaces.automotive.vehicle.2.0.jave/VehicleProperty.java

6、1.1 source build/envsetup.sh (. build/envsetup.sh);
1.2 lunch , 然后选择12(full_ac8x_demo-userdebug)

7、查看编译日志:vi build_ac8x_demo.log

8、提交代码:
    git commit --amend
    git push origin HEAD:refs/for/saic_dev20c2
   origin/saic_dev20c2 
   [feature] [Car-lib] [Modify the setInt function of the Eol function]
   
   [feature] [engineermode] [Added automatic upgrade manual]
   [feature] [AtcCarService][Add upgrade instructions]
   
   [feature] [ExtcarService][Modify frequency default value  of the EOL module]
   [feature] [framework][Add logistics data interface]

   
   vim ~/.gitconfig
   CreateChangeid = false
git config --global user.name "Your Name"
git config --global user.email  yangmaolin@oimt.tech
配置邮箱之后要,commit --amend更新提交的信息
   

i

 9、logcat | grep liaofeiliang
 
10、adb root & adb remount remount


11、   make android.car-system-stubs-docs-update-current-api
       make android.car-stubs-docs-update-current-api
12、
      https://gerrit.soimt.intra/dashboard/self
yangmaolin@oimt.tech  Zz@4898902

13 、开始发这个协议:00 00 04 1F     00 00 00 00 00 00 00 00    2F3
onChangeEvent.20240108
logcat | grep -e "zhonPropertyEvent"  -e  "onChangeEvent="
logcat |grep "getProperty, propId"
logcat | grep -e "yml"  -e  "zhBmiVehicleConnector"
logcat |grep "mPropertyId=0x21401039"
logcat |grep "onChangeEvent.2024"

2140106E  空调按钮
logcat |grep "BmiADASProcessor::send"
logcat |grep "ExtPropertyHalService: setProperty()"


logcat |grep "ControlInterface: print data:0xff 0xaa 0xc0 0x00 0x00 0xb0 0x14 0x01 0xf1"

logcat |grep  "parse_single_cmd"
logcat |grep  "parse_single_cmd: 0Xff, 0Xaa, 0X50, 0X0, 0X0, 0Xa0, 0X15, 0X1, 0Xf1"

logcat |grep "1039"

logcat |grep "ControlInterface: print data:0xff 0xaa"

SENSOR_TYPE_IGNITION_STATE 0x11401304  289411844
logcat |grep -e "1141304" -e "18092804"

logcat | grep -e "yml.get"  -e  "onChangeEvent="

配置360:
C002 byte3=0x00
C004 Byte4=0x01
C014_Byte1 == 0

RVC:
C002 byte3=0x02
C004 Byte4=0x00
logcat |grep -e "557847608" -e "21401438"   -----倒车   ID_SMPV_ONLYREAD_TRANSMISSION_GEAR   0x21401438

logcat |grep -e "557847422" -e "2140137e" ID_SMPV_AVM_360_STATE


AVM系统状态控制信号: ID_SMPV_AVM_360_STATE:         ZS11: 303 AVMDspReq -  37C AVMSysSts  |||| AP32: 501 AVMDspSwReq -  37C AVMSysSts)
    辅助线设置信号: ID_SMPV_AVM_SUBORDINATE_LINE_TYPE:: ZS11: 303    FrtAndRrGudOvlyDspReq - 37C FrtAndRrGudOvlyDspCmd |||| AP32: 501    FrtAndRrGudOvlyDspReq - 37C FrtAndRrGudOvlyDspCmd
    2d3d模式信号: ID_SMPV AVM_THREED_UI_DSP:    0x21401380        ZS11: 303    ThreeDimnlDspReq - 37C ThreeDimnlDspCmd |||| AP32: 501    ThreeDimnlDspReq - 37C ThreeDimnlDspCmd
    视角选择信号: ID_SMPV_AVM_SURND_VIEW_TYPE:   0x21401383       ZS11: 303    SurndViewSeln - 37C AVMCrntViewSta |||| AP32: 501    SurndViewSeln - 37C AVMCrntViewSta
    低速转向视图自动开启设置: ID_SMPV_ AVM_LOW_SPD_AUTO_STATE: ZS11: 303    LowSpdAutocOpenAVMReq - 37C LowSpdAutocOpenAVMDspCmd |||| AP32: 501    LowSpdAutocOpenAVMReq - 37C LowSpdAutocOpenAVMDspCmd
    RCTA-left: ID_SMPV_CARSET_LEFT_RTCA_WARN:   - 204 LRCTAWrnng
    RCTA-right: ID_SMPV_CARSET_RIGHT_RTCA_WARN: - 204 RRCTAWrnng
    自动标定: ID_SMPV_AVM_CAL_MD:                       ZS11: 303 AVMCalMdReq - 37C AVMCalMdReqResp |||| AP32: 501 AVMCalMdReq - 37C AVMCalMdReqResp

AVM系统状态控制信号: ID_SMPV_AVM_360_STATE

辅助线设置信号:EVS_ID_AVM_ASSISTANT_LINE   ID_SMPV_AVM_SUBORDINATE_LINE_TYPE
2d3d模式信号:ID_SMPV_AVM_THREED_UI_DSP
视角选择信号:ID_SMPV_AVM_SURND_VIEW_TYPE
低速转向视图自动开启设置:ID_SMPV_AVM_LOW_SPD_AUTO_STATE
RCTA-left:ID_SMPV_CARSET_LEFT_RTCA_WARN
RCTA-right:ID_SMPV_CARSET_RIGHT_RTCA_WARN
自动标定:ID_SMPV_AVM_CAL_MD


mParkingAssistanceManager,setGlobalproperty(Integer,class, CarParkingAssistanceManager,ID_SMPV_AVM_THREED_UI_DSP, 2);


com.android.externalcar

获取属性代码分析:

HalClient

解决冲突例子:
1、git fetch "ssh  
2、repo sync .
3、git reset --hard 
4、git remote -v
5、git rebase --abort 

6、git cherry-pick --continue

557846621

adb shell dumpsys activity service com.android.car inject-vhal-event 0x2140105D 1 2
adb shell dumpsys activity service com.android.car inject-vhal-event 0x21401768 1 2

EOL_SET_TFT_DISPLAY
adb shell dumpsys activity service com.android.car inject-vhal-event 0x21401762 1 2

EOL_SET_IPK_LVDS_OUTPUT
adb shell dumpsys activity service com.android.car inject-vhal-event 0x21401768 1 2

SENSOR_TYPE_IGNITION_STATE  点火状态 1F1

ID_SMPV_HVAC_FROROW_BATTERY 前排空调电源    38B    FICMACOnOffSwReq <-> 3A8 ACOnOffDspCmd

ID_SMPV_HVAC_AC_ON  A/C设置  38F FICMComprOnOffSwReq <-> 3A8 ComprOnOffDspCmd

ID_SMPV_HVAC_FROROW_MODE   吹脸、吹脸吹脚、吹脚、吹脚吹窗、吹窗  391 FICMACDrvrAirMdReq/FICMACDrvrAirMdReqV <-> 37E ACDrvrAirMdDspCmd //==========

ID_SMPV_HVAC_AC_LOOP_MODE----2140106D  内/外循环  38B    FICMACRcctnSwReq <-> 3A8    ACRcctnDspMd


   

ID_ZONED_HVAC_DRVTEMP_SET 设置温度  38B FICMACLTemReq/FICMACLTemV <->  
3A8 ACLTemDspCmd   ID_SMPV_HVAC_DRVTEMP_READ=21601089 主驾温度   矩阵没找到 有问题 ACDrvrTemDspCmd 

ID_SMPV_HVAC_FROROW_BLOW_SET 设置风量  38B FICMACFrtBlwrLvlReq/ACFrtBlwrLvlReqV <-> 3A8 ACFrtBlwrSpdDspCmd


ID_SMPV_HVAC_CAR_OUT_TEMPTURE  室外温度 5E5 ACAmbtTem/ACAmbtTemV 

EOL 调试:

蓝牙状态 EOL_GET_BT_STATES=21401745/557848389
         EOL_SET_BT_STATES=21401744/557848388
         EOL_GET_BT_PAIR_DEVICES=557913966/0x2141176e 
logcat |grep -e "21401745" -e "21401744" -e "557848389" -e "557848388"
EOL_GET_BT_PAIR_DEVICES   2141176e/557913966

logcat |grep -e "21401745" -e "557848389" -e "557913966"
logcat |grep -e "2141176e" -e "557913966"


TIMEINFO_YEAR 557846539/2140100B

logcat |grep -e "2141176E" -e "557913966"
logcat |grep -e "557846539" -e "2140100B"

dumpsys activity service com.android.car inject-vhal-event 0x2141176F 1 1
数据回调:

dumpsys activity service com.android.car inject-vhal-event 0x21401745 1 1


EOL_SET_TP_TEST  557848423 /0x21401767
dumpsys activity service com.android.car inject-vhal-event 0x21401767 1 2

EOL_SET_GPS_GAIN_MODE  557848420/0x21401764
dumpsys activity service com.android.car inject-vhal-event 0x21401767 1 2

EOL_GET_TRECK_SATELLITES
EOL_GET_VISIBLE_SATELLITES
EOL_GET_HDOP
EOL_GET_VDOP
EOL_GET_GPS_CN_VALUE
logcat |grep setProperty()


车设:EPS
ID_SMPV_CARSET_CUSTOM_STEER_WHELL=0x214010fe
伴我回家:
ID_SMPV_CARSET_FOLLOW_ME_HOME =0x2140118f


logcat |grep ExtEolManager

CarAudioManager: setGroupVolume()


15、CAN 更新时间代码:
   AtcCarService-->syncMcuTimeToSoc-----最终执行----TimeDetectorStrategyImpl.java--->suggestExternalTime


第三方按键功能
KeyEvent.KEYCODE_VOLUME_UP: //keycode = 24
KeyEvent.KEYCODE_VOLUME_DOWN: //keycode = 25


方向盘线控SWC2
(右方控)
KeyEvent.KEYCODE_SWC_UP://keycode = 297
KeyEvent.KEYCODE_SWC_DOWN://keycode = 298

AUTO_TIME
AUTO_TIME_ZONE
logcat |grep updateSystemTimetime
/ZhParseJson( 1944): updateSystemTimetime: 2024, 3, 24, 20, 9, 48
2024-03-13 05:47:16.683 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED
2024-03-13 05:47:16.776 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.adapter.action.CONNECTION_STATE_CHANGED
2024-03-13 05:47:22.963 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED
2024-03-13 05:47:23.024 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.a2dp-sink.profile.action.CONNECTION_STATE_CHANGED
2024-03-13 05:47:23.104 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.avrcp-controller.profile.action.CONNECTION_STATE_CHANGED
2024-03-13 05:47:23.115 4286-4286/com.zh.commontest I/MainActivity:  onCreate=android.bluetooth.avrcp-controller.profile.action.CONNECTION_STATE_CHANGED

亮度调节:
SV_SEND_BACKLIGHT_DATA = 289477594/0x114113DA
SV_DISPATCH_BACKLIGHT_DATA = 289477593/0x114113d9

logcat |grep -e "2141176E" -e "557913966"

logcat |grep -e "289477593" -e "114113d9"
logcat |grep -e "289477594" -e "114113da"
@wilber @自由飞翔 怎么他们的背光下发的ID老变来变去的,之前是发DISPLAY_BRIGHTNESS (0A03),
前段时间又改成 SV_DISPATCH_BACKLIGHT_DATA (13D9), 
我刚刚升级了今天的版本,又变成了DISPLAY_BRIGHTNESS (0A03) 了


声音:
CarAudioService.setGroupVolume(int zoneId,int groupId,int index,int flags)

public void onGroupVolumeChanged(int zoneId, int groupId, int flags)
获取声音大小:
int groupVolume = VolumeController.this.mCarAudioManager.getGroupVolume(i2);

onGroupVolumeChanged: volume =|setVolumeTest: mStreamType
setVolumeTest: mStreamType
AudioAttributes: setLegacyStreamType() with Source: SOURCE_CP_NAVI, 62
钢琴键调节音量:
音量加:1094713366/0x41400016
音量减:1094713367/0x41400017

mCarAudioManager = (CarAudioManager) mCarApi.getCarManager(Car.AUDIO_SERVICE);
mCarAudioManager.registerCarVolumeCallback(mCarVolumeCallback);

mCarVolumeCallback回调方法onGroupVolumeChanged中使用
mCarAudioManager.getVolumeGroupIdForUsage(xxx)出来的不是
CarAudio.VOLUME_TYPE_VOICEl类型

            switch (carPropertyValue.getPropertyId()) {
                case CarCabinManager.ID_ZONED_VEHICLE_ESP:
                    int intValue = ((Integer) carPropertyValue.getValue()).intValue();
                    CabinController.LOG.mo12275i("onChangeEvent: ID_ZONED_VEHICLE_ESP value = " + intValue + "(0:OFF;1:Normal;2:Competitive)");
                    CabinController.this.sendHandlerMsg(1, Integer.valueOf(intValue));

音量调节:

1、KeyStrategyService------volueAction
2、CarAudioService----->setCurGroupVolume

3、ExtCarAudioService---getExtFocuControlManager------得到对象---ExtFocuControlManager.getTopFocusSourceID()
---->AudioAttributes.getAudioSourceId();------>AudioAttributes.getBundle();---> Bundle bundle.getInt(KEY_SOURCE_ID);
4、android/car/am/audio/CarAudioService----->setGroupVolume
5、framework/base/media/java/android/media/AudioFocusInfo.java

CarService   1、ExtCarAudioService.java ---->setCurGroupVolume(zoneId,index);
             2、CarAudioServcie.java ---->setCurGroupVolume(zoneId,index);
             3、AudioAttributes.getStreamWithSource(sourceID)
             4、AudioAttributes.getAudioSourceId
             5、/framework/base/media/java/android/media/AudioManager.setStreamVolume
             
              AudioManager: setStreamVolume: StreamType = 3, index = 15, flags = 1024
ExtFocuControlManager: ExtCarAudio Evaluating GAIN_TRANSIENT
MyKeyStrategy: volumeAction: sourceId=
setLegacyStreamType()

AudioAttributes attrib = new AudioAttributes.Builder().
setLegacyStreamType(64).
setContentType(AudioAttributeS.CONTENT_TYPE_SONIFICATION).//AudioAttributessetUsage(1).
build():
HashMap<String, 0bject> hashMap = getAudioAttributesMapForBundler( audioType: "cp_ring", bootResume: 0);
this.ringRegAttrib = SaiccarAudioManager.setcarAttr(attrib, hashMap);
AudioFocusRequest.Builder focusBuilder = new AudiofocusRequest.Builder(AudioManagEr.AUDIOFOCUS_GAIN_TRANSIENT);
focusBuilder .setOnAudiofocuschangelistener(this.ringListener),setAcceptsDelayedFocusGain(false),
focusBuilder.setAudioAttributes(this.ringReqAttrib);int res = 
this.mAudioManager.requestAudioFocus(focusBuilder.build());

音量回调:
CarVolumeCallBackHandler.onGroupVolumeChanged

EOL_GET_BT_PAIR_DEVICES
busybox vi /system/usr/keylayout/Generic.kl
insmod /data/zhc_diag.ko
logcat |grep ExtDtcManager


20240326_23:32:3801-01 07:00:05.185 I/ZhParseJson( 1958): updateSystemTimetime: 2024, 3, 19, 20, 21, 11

adb shell am start -n com.android.car/.am.TestCarActivity
8、属性回调逻辑----------
   
  (1) CarVendorExtensionManager----->onChangeEvent(CarPropertyValue Value)
  (2)  CarPropertyManager.onPropertyChanged(CarPropertyEvent event)
  (3)  CarPropertyService.onPropertyChange(List<CarPropertyEvent> events)
  (4) PropertyHalService.onHalEvents(List<VehiclePropValue>)
  (5) VehicleHal.onPropertyEvent
  (6) HalClient.onPropertyEvent
   
  (7) 发送属性:VehicleHal.injectVhalEvent
   SENSOR_TYPE_CAR_SPEED  291508989/0x116012fd
   logcat |grep -e "291508989" -e "116012fd"
   
   
   
   
   
   logcat |grep -e "1094713367" -e "FK" -e "0Xd5" -e "keycode:298"
   
   
   
   
   
       public int getCurVolumeType() {
        CarAudioManager carAudioManager = this.mCarAudioManager;
        if (carAudioManager == null) {
            return 0;
        }
        AudioFocusInfo topAudioFocusInfo = carAudioManager.getTopAudioFocusInfo();
        if (topAudioFocusInfo != null) {
            int usage = topAudioFocusInfo.getAttributes().getUsage();
            LOG.mo12275i("getCurVolumeType  currentUsage === " + usage);
            if (usage == 1) {
                return 0;
            }
            if (usage == 2) {
                return 1;
            }
            if (usage == 6) {
                return 3;
            }
            if (usage == 11) {
                return 2;
            }
            if (usage != 12) {
                return 0;
            }
            return 12;
        }
        LOG.mo12275i("getCurVolumeType currentUsage === null ");
        return 0;
    }

(8)焦点请求已经回调
CarAudioManager.mFocusChangeListener.onAudioFocusGrant----->ExtCarAudioService.notifyExtAudioFocusGrant
----->ExtFocuControlManager.onAudioFocusRequest

        请求音频焦点: 
        private final AudioManager mAudioManager;
        AudioFocusRequest build = new AudioFocusRequest.Builder(1).setAudioAttributes(new AudioAttributes.Builder().setUsage(1).setLegacyStreamType(this.mCurSourceType).addBundle(bundle).build()).setOnAudioFocusChangeListener(this).setAcceptsDelayedFocusGain(true).build();
        this.mAudioRequest = build;
        (1)int requestAudioFocus = this.mAudioManager.requestAudioFocus(build);
        (2)mAudioManager.requestAudioFocus--->AudioService.requestAudioFocus
        (3)MediaFocusControl.requestAudioFocus();
        (4)MediaFocusControl.notifyExtFocusPolicyFocusRequest_syncAf
        (5)mFocusPolicy.notifyAudioFocusRequest
        (6)方法返回:mFocusOwnersForFocusPolicy--------FocusRequester.dispatchFocusResultFromExtPolicy
          mAudioManager.mAudioFocusDispatcher.dispatchFocusResultFromExtPolicy
        
        (7)回调音频焦点
             AudioService.setFocusRequestResultFromExtPolicy------>MediaFocusControl.setFocusRequesResultFromExtPolicy
             
             AudioPolicy.onAudioFocusRequest
       (8)ExtFocuControlManager---->dispatchFocusGainedLocked
       (9)ExtFocuControlManager---->
             
        (10)
        APP-----注册回调----CarAudioManager.setAudioFocusChangeListener
        ExtCarAudioService.onAudioFocusGrant--->ExtCarAudioService.notifyExtAudioFocusGrant
        ExtFocusControlManager.onAudioFocusRequest--->notifyExtAudioFocusGrant
        
   


 

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值