自定义按键增加可绑定流媒体功能

需求解读

  1. 增加车机的边际效益(硬件摆在那,不用白不用)
    用户想看后视镜流媒体时,只要按自定义按键即可。

  2. 自定义按键的信息传递规则
    用户在大屏操作设置自定义按键,选择流媒体,SOC就下发CB指令,告诉MCU自定义按键绑定了流媒体。当用户再次按自定义按键时,MCU先上报按键事件给SOC,SOC判断应该触发哪个自定义功能后,下发该功能的指令给MCU,MCU收到后再发指令给相应的ECU,有些是直接发CAN信号,有些是先设置那个功能的PA,再通过那个功能的逻辑发CAN信号给ECU,例如车外后视镜就是这种方式,但流媒体等其他功能都是直接发CAN信号。
    有些功能有长短按,长短按触发不同动作,流媒体功能只有短按。
    当车机重启,这个绑定的自定义按键要保持绑定,这需要MCU把用户的设置保存到EEP。当用户恢复车机出厂设置,自定义按键要解除绑定的功能,这需要MCU在用户出厂设置时解绑功能。

  3. MCU的DID与PAx的信息传递规则
    PAx的设置值可设为0或1,设为1代表用户绑定这个功能。当某PAx的设置值为1,同时其可用性为可用时,自定义按键DID的值就等于这个PAx的编号,例如10,流媒体。

代码基础

void eeprom_set_custom_self_key_fun(unsigned char * key_fun);
// 功能:接收SOC下发的用户设置值,如选了流媒体就下发10。接收了后赋值给DID,并且通过对比EEP里的值决定是否要保存。
		
unsigned char keyboard_u8GetPA_CustKey_xxx(unsigned char * data);
// 功能:通过配置字,电源状态计算这个可绑定功能的PA的可用性,通过比较DID和自定义功能的编号计算出PA的设置值(设置值为0或1)。
// 备注:系统工程师的设计是可用才可以把DID设为这个功能,乍看代码不管这功能的PA可不可用,DID都可以设,但实际上如果不可用,这个按键是不能按或者隐藏,所以其实和设计一样。
		
void system_reply_custom_self_key_settings(void);
// 功能:SOC下发用户选择后,收集各可绑定功能的PA数据,回复SOC。
// 备注:以前的功能是只设置DID并把DID回复SOC就行,后来应该是改协议,合用了keyboard_PA_scan函数上报的协议,现在代码逻辑与keyboard_PA_scan功能相同,这修改的原因可能是修复时序错位。
		
void keyboard_PA_scan(void);
// 功能:周期性收集各可绑定功能的PA数据,主动上报SOC。
		
void keyboard_submit(unsigned short keyEvent, unsigned char param);
// 功能:所有按键的处理。自定义按键按下后,上报自定义按键的DID,和长短按类型给SOC。SOC接收到按键事件后,再下发相应的触发功能指令。

实施计划

  1. 制定SOC下发启动流媒体的协议。
  2. 实现外发流媒体CAN信号的port。
  3. 配置CAN信号外发。
  4. 实现接收SOC下发启动指令,和外发CAN信号逻辑。
  5. 增加流媒体的枚举。
  6. 实现获取配置字的port。
  7. 实现流媒体的keyboard_u8GetPA_CustKey_xxx函数。
  8. 把keyboard_u8GetPA_CustKey_xxx函数加入system_reply_custom_self_key_settings和keyboard_PA_scan上报函数中。

可能会发生的问题

  1. system_reply_custom_self_key_settings和keyboard_PA_scan冲突,有待分析。

实施用时

  1. 预估:步骤1(10分钟),3(15分钟),4(10分钟),5(5分钟),7(20分钟),8(15分钟)+编译通过(20分钟)预估95分钟。
  2. 1月7日实施实际用时:
    后视镜流媒体功能已经有同事之前做了,所以步骤1 - 4都不用做,我一开始也看到,意识到已经做好了,但我问负责达芬奇的同事说,后视镜流媒体的SWC还没创建,意思说同事写好的代码没有实际运行。我觉得有点怪,写得这么完整的逻辑没用上,但回想这也不是不可能,所以没深究。
    当我给我的SWC加步骤2的CAN信号外发接口时,负责达芬奇的同事说接口已经从后视镜流媒体SWC移到我的SWC,我可以调用了,但我发现编译不过,问负责达芬奇的同事确认一下是否已经移过来,他说确认。
    我不太清楚达芬奇,觉得麻烦,跟他说直接把后视镜流媒体的SWC创建了吧,用原来写好的逻辑。
    这时他发现这个流媒体后视镜的SWC已经有了。。什么鬼。。之前又说没有
    足足用了1个小时弄清楚这个事情,本来什么都不用做的,但就这样来回折腾,前4步用了1个小时。
    后面的步骤5-8很快,20分钟完成,不过要回头检查一下。
    。。。工作经验总是告诉我,理解情况是最难的,实施是很快的。。。
    。。。在一个协作场景,要理解的情况其中有同伴的步伐,就像调研市场上的竞品。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值