- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
转向灯属于车上使用频次较高的功能,运用最多的场景是转弯或变道。此外还有很多场景需要用到转向灯的功能,比如双闪、解锁、闭锁、寻车、防盗报警、自动变道、热失控……等等,在这里就不做一一举例。随着以后功能的丰富,使用转向灯的场景应该还会增加。所以针对这种很多场景都会使用的功能,比较适合运用SOA的方法来进行设计。
具体的服务架构方案如下所示:
一、转向灯服务接口设计
要设计一个服务,首先要思考这个服务本身具备什么样的能力,其次要考虑需要给用户提供什么样的服务。当前转向灯普遍具备以下两个能力:
(1)亮和灭的能力。
(2)流水和非流水能力。
从这两个转向灯的基础能力中可以提取出什么样的服务提供给消费方,以实现不同的功能需求,这需要从具体的场景出发去进行通盘的考虑。
比如当用户打转向时,需要某一侧转向灯以一定的频率闪烁;用户按下危险报警灯开关,需要左右两侧的转向灯以一定的频率同时闪烁;用户锁车时,转向灯闪烁一次,持续时间1s;用户解锁车辆时,转向灯以一定的频率闪烁3次;车辆防盗报警触发时,转向灯以一定频率持续闪烁5分钟……
服务的设计应能满足当前的功能需求,并尽可能为潜在的需求提前设计服务接口。根据上面的需求,转向灯控制的服务接口需要具备以下能力:
(1)转向灯开和关。
(2)转向灯开启方位选择(左侧、右侧和左右两侧)。
(3)转向灯频率可调。
(4)转向可设置闪烁次数。
(5)转向灯可设置闪烁时间。
这5项是比较基础的能力,因为很多场景需要用到转向灯,比如哨兵模式触发报警需要亮转向灯,智能驾驶时主动变道需要亮转向灯。为了满足不同的场景对转向灯的需求,有些场景优先级是比较高的,所以需要定义一个接口,可进行转向灯优先级的设置。
定义好服务的接口内容后,需要对每一个接口进行详细描述,明确告知用户应该怎么使用该接口。??
服务接口使用手册:
TurnLightPosition:用户可以根据需求,控制单侧或者双侧的转向灯,此外还提供了单个转向灯的控制。
TurnLightOnOff:转向灯的开启或者关闭。
TurnLightDutyCycle:转向灯的占空比可以进行设置,默认为50%。
TurnLightCycle:转向灯的亮/灭周期可进行设置,默认为500ms。
TurnLightTimes:可单独设置转向灯工作的时间,当设置该参数时,转向灯执行完设置的时间后会自行熄灭。
TurnLightNumber:可单独设置转向灯工作的次数,当设置该参数时,转向灯执行完设置的周期后会自行熄灭。
TurnLightPriority:转向灯的优先级可进行设定,数字越小代表的优先级越大,比如当优先级1的转向灯在工作时,不响应其他优先级的转向灯控制请求。另外同一个优先级的转向灯控制请求,采用后来者优先的处理方式,意思是同一优先级的转向灯请求可相互打断,服务会响应后一个转向灯请求,并直接丢弃前一个转向灯的请求。
优先级的定义如下:
Default:当用户选择Default时,等同于priority4的优先级。
Priority1:安全类。
Priority2:报警类。
Priority3:行车功能类。
Priority4:场景功能类。
Priority5:辅助类。
有了以上这些配菜之后,厨师可以根据需求进行创作。各个产品工程师,可以根据自身的业务需求对转向灯进行控制,每一个业务板块之间相互独立,互不影响。这是各类的APP擅长的事情,这些APP不单单指的是独立的APP,也代表各个控制器内的独立的软件模块。
二、转向灯场景设计
介绍完服务的接口设计,针对具体的应用场景,进行详细分析。
比如开车时,用户左转需要点亮转向灯,那么该软件模块只要识别到左转向灯开关触发,然后去调用转向灯的服务接口即可,具体设计如下:
车辆电源为ON挡,且左转灯开关为激活状态时,调用该转向灯服务接口,具体定义为:
TurnLightPosition=0x1
TurnLightOnOff=0x2
TurnLightDutyCycle=0x0
TurnLightTimes=0x0
TurnLightNumber=0x0
TurnLightPriority=0x3
当电源不为ON挡或者左转向灯开关为非激活状态时,调用该服务接口,具体定义为:
TurnLightPosition=0x1
TurnLightOnOff=0x1
TurnLightDutyCycle=0x0??
TurnLightTimes=0x0
TurnLightNumber=0x0
TurnLightPriority=0x3
还有我们比较常见的场景在地下车库找不到爱车时,用户使用钥匙或者手机寻找车辆,寻车功能激活时,一般是转向灯会激活30s或者1min。此时只要检测到钥匙的寻车按键触发或者用户通过手机APP
文档评论(0)