一种事件驱动的车灯状态机的控制方法与流程
- 国知局
- 2024-11-06 15:06:27
本发明属于车辆控制,具体涉及一种事件驱动的车灯状态机的控制方法。
背景技术:
1、在车辆中会配置多个灯,比如车辆的各电子控制系统的指示灯。通常灯具有三种工作模式,包括常亮、常灭以及按某一频率闪烁,需要控制灯在上述三种工作模式之间进行切换。在现有技术中,使用状态机来表示灯的状态,状态机包括亮和灭两个状态。当需要车灯常亮时,让状态机保持在亮的状态。当需要车灯常灭时,让状态机保持在灭的状态。在车辆实际运行过程中,车灯会收到来自各个模块的不同控制请求,控制请求的类型多种多样。并且随着车辆技术的发展,对车灯的控制请求的种类也越来越多。当需要新增控制请求的种类时,对于只有两个状态的状态机,需要增加复杂的函数代码,不利于实现,代码的可扩展性低。
技术实现思路
1、本发明的一个目的是提供一种事件驱动的车灯状态机的控制方法,能够解决现有技术中车灯状态机代码的可扩展性低的技术问题。
2、根据本发明的第一方面,提供了一种事件驱动的车灯状态机的控制方法,包括:
3、获取车灯状态机的目标事件,所述目标事件包括亮灯事件、灭灯事件、闪烁事件、计时器清零、计时器清零且计数器清零;
4、根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态;
5、将所述车灯状态机切换至所述目标状态;
6、执行所述车灯状态机的目标状态对应的动作函数;
7、其中,所述车灯状态机的状态包括稳定状态和过渡状态,所述稳定状态包括第一稳定状态、第二稳定状态、第三稳定状态、第四稳定状态,所述过渡状态包括第一过渡状态、第二过渡状态、第三过渡状态、第四过渡状态、第五过渡状态、第六过渡状态、第七过渡状态、第八过渡状态、第九过渡状态、第十过渡状态、第十一过渡状态;
8、第一稳定状态为车灯处于常灭的状态,所述第一稳定状态对应的动作函数的内容包括灭灯以及清零计时器和计数器;
9、第二稳定状态为车灯处于常亮的状态,所述第二稳定状态对应的动作函数的内容包括亮灯以及清零计时器和计数器;
10、第三稳定状态为车灯处于闪烁且灯亮的状态,所述第三稳定状态对应的动作函数的内容包括亮灯以及设置计时器和计数器;
11、第四稳定状态为车灯处于闪烁且灯灭的状态,所述第四稳定状态对应的动作函数的内容包括灭灯以及设置计时器和计数器;
12、第一过渡状态下灯亮且有计时器和计数器,所述第一过渡状态对应的动作函数的内容包括亮灯以及设置计时器和计数器;
13、第二过渡状态下灯亮且有计时器和计数器,所述第二过渡状态对应的动作函数的内容包括亮灯以及设置计时器和计数器;
14、第三过渡状态下灯灭且有计时器和计数器,所述第三过渡状态对应的动作函数的内容包括灭灯以及设置计时器和计数器;
15、所述第四过渡状态、第五过渡状态、第六过渡状态下,灯的亮灭维持在切换前的状态,对应的动作函数为空;
16、第七过渡状态下灯灭且有计时器和计数器,所述第七过渡状态对应的动作函数的内容包括灭灯以及设置计时器和计数器;
17、第八过渡状态下灯亮且有计时器和计数器,所述第八过渡状态对应的动作函数的内容包括亮灯以及设置计时器和计数器;
18、第九过渡状态下灯灭且有计时器和计数器,所述第九过渡状态对应的动作函数的内容包括灭灯以及设置计时器和计数器;
19、第十过渡状态下灯亮且有计时器和计数器,所述第十过渡状态对应的动作函数的内容包括亮灯以及设置计时器和计数器;
20、第十一过渡状态下灯灭且有计时器和计数器,所述第十一过渡状态对应的动作函数的内容包括灭灯以及设置计时器和计数器。
21、可选地,所述车灯状态机的当前状态为第一稳定状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
22、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第一过渡状态;
23、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
24、在所述目标事件为灭灯事件、计时器清零、计时器清零且计数器清零中任一种的情况下,忽略所述目标事件。
25、可选地,所述车灯状态机的当前状态为第二稳定状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
26、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第一稳定状态;
27、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
28、在所述目标事件为亮灯事件、计时器清零、计时器清零且计数器清零中任一种的情况下,忽略所述目标事件。
29、可选地,所述车灯状态机的当前状态为第三稳定状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
30、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第四过渡状态;
31、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第六过渡状态;
32、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第四稳定状态;
33、在所述目标事件为闪烁事件或计时器清零的情况下,忽略所述目标事件。
34、可选地,所述车灯状态机的当前状态为第四稳定状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
35、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第四过渡状态;
36、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第五过渡状态;
37、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第三稳定状态;
38、在所述目标事件为闪烁事件或计时器清零的情况下,忽略所述目标事件。
39、可选地,所述车灯状态机的当前状态为第一过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
40、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第五过渡状态;
41、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
42、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第二稳定状态;
43、在所述目标事件为亮灯事件或计时器清零的情况下,忽略所述目标事件。
44、可选地,所述车灯状态机的当前状态为第二过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
45、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第八过渡状态;
46、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第十过渡状态;
47、在所述目标事件为闪烁事件的情况下,忽略所述目标事件;
48、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第三过渡状态;
49、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第四稳定状态。
50、可选地,所述车灯状态机的当前状态为第三过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
51、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第九过渡状态;
52、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第十一过渡状态;
53、在所述目标事件为闪烁事件的情况下,忽略所述目标事件;
54、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
55、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第三稳定状态。
56、可选地,所述车灯状态机的当前状态为第四过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
57、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第五过渡状态;
58、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第三稳定状态;
59、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第二稳定状态;
60、在所述目标事件为亮灯事件或计时器清零的情况下,忽略所述目标事件。
61、可选地,所述车灯状态机的当前状态为第五过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
62、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第四过渡状态;
63、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第四稳定状态;
64、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第一稳定状态;
65、在所述目标事件为灭灯事件或计时器清零的情况下,忽略所述目标事件。
66、可选地,所述车灯状态机的当前状态为第六过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
67、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第四过渡状态;
68、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第三稳定状态;
69、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第七过渡状态;
70、在所述目标事件为灭灯事件或计时器清零的情况下,忽略所述目标事件。
71、可选地,所述车灯状态机的当前状态为第七过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
72、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第四过渡状态;
73、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第四稳定状态;
74、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第一稳定状态;
75、在所述目标事件为灭灯事件或计时器清零的情况下,忽略所述目标事件。
76、可选地,所述车灯状态机的当前状态为第八过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
77、在所述目标事件为亮灯事件的情况下,忽略所述目标事件;
78、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第十过渡状态;
79、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
80、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第九过渡状态;
81、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第九过渡状态。
82、可选地,所述车灯状态机的当前状态为第九过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
83、在所述目标事件为亮灯事件的情况下,忽略所述目标事件;
84、在所述目标事件为灭灯事件的情况下,确定所述车灯状态机的目标状态为第十一过渡状态;
85、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第三过渡状态;
86、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第八过渡状态;
87、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第一过渡状态。
88、可选地,所述车灯状态机的当前状态为第十过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
89、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第八过渡状态;
90、在所述目标事件为灭灯事件的情况下,忽略所述目标事件;
91、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第二过渡状态;
92、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第十一过渡状态;
93、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第十一过渡状态。
94、可选地,所述车灯状态机的当前状态为第十一过渡状态,所述根据所述目标事件以及所述车灯状态机的当前状态,确定所述车灯状态机的目标状态,包括:
95、在所述目标事件为亮灯事件的情况下,确定所述车灯状态机的目标状态为第九过渡状态;
96、在所述目标事件为灭灯事件的情况下,忽略所述目标事件;
97、在所述目标事件为闪烁事件的情况下,确定所述车灯状态机的目标状态为第三过渡状态;
98、在所述目标事件为计时器清零的情况下,确定所述车灯状态机的目标状态为第十过渡状态;
99、在所述目标事件为计时器清零且计数器清零的情况下,确定所述车灯状态机的目标状态为第一稳定状态。
100、本发明的有益效果在于:本发明通过设置多种稳定状态和多种过渡状态,提高状态机的复杂度,通过数据结构的复杂化来简化算法,提高软件代码的可扩展性。并且在程序开发阶段,使用更详细的状态可以帮助开发者更容易地跟踪和调试系统行为,提高开发效率。此外,本发明通过设置多种过渡状态,对于每种过渡状态,在计时器和计数器清零时自动切换至其它状态,使得车灯状态机的状态切换更加平滑,同时多种过渡状态能够应对各种复杂场景。
本文地址:https://www.jishuxx.com/zhuanli/20241106/325338.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表