技术新讯 > 电子电路装置的制造及其应用技术 > 一种FRU指示灯控制方法、装置、设备及存储介质与流程  >  正文

一种FRU指示灯控制方法、装置、设备及存储介质与流程

  • 国知局
  • 2024-08-02 15:41:45

本技术涉及计算机,特别涉及一种fru指示灯控制方法、装置、设备及存储介质。

背景技术:

1、bmc(baseboard management controller,基板管理控制器)在服务器中扮演着重要的角色,能够对系统的整体情况进行监控,如监控服务器硬件状态、远程管理和控制服务器等,并且,bmc中还包含有各种传感器和指示灯,如fru(field replace unit,现场可更换单元)指示灯以及相应的控制逻辑。

2、目前,在bmc的运行过程中,存在如下的灯控场景:例如,当fru器件,如风扇出现故障时,需要点亮风扇故障灯和系统故障灯,当内存出现故障时,需要点亮内存故障灯和系统故障灯,并在风扇故障解除时,熄灭风扇故障灯,由于内存故障仍存在,因此系统故障灯不能熄灭;又如,一个物理灯可以通过点亮不同的颜色来显示不同的状态,如定位状态、运行状态和告警状态等,由于同一个灯可以同时点亮多种不同的颜色,因此存在优先级问题,只有在高优先级状态熄灭后才能点亮低优先级状态;另外,当出现不同的点灯需求,且存在灯常亮或闪烁显示时,也存在优先级问题,需要在高优先级状态熄灭后才能点亮低优先级状态。

3、然而,目前bmc在对fru指示灯进行控制时,通常是通过内部的各个功能模块来实现的,如通过多个功能模块控制灯点亮、熄灭和闪烁等操作,这种方式需要多进程进行进程间数据同步,容易出现灯控优先级顺序出错,从而导致灯控准确性较低,并且实现的代码繁琐、逻辑较复杂,容易出现场景考虑不全、难以维护和扩展的问题。

技术实现思路

1、有鉴于此,本技术的目的在于提供一种fru指示灯控制方法、装置、设备及存储介质,能够降低bmc中各种灯状态管理操作的复杂度,简化灯控逻辑,并提高灯控的效率和灵活性,同时,确保了灯控的准确性和顺序性。其具体方案如下:

2、第一方面,本技术公开了一种fru指示灯控制方法,应用于集成在基板管理控制器上的fru灯控管理组件,所述fru灯控管理组件中包括预先创建的事件配置文件,包括:

3、当监听到由fru器件触发的指示灯控制事件时,获取所述指示灯控制事件中携带的第一编码和第二编码;所述第一编码用于唯一标识所述指示灯控制事件,所述第二编码为用于表示灯点亮操作或灯熄灭操作的编码;

4、根据所述第一编码和所述第二编码从所述事件配置文件中确定与所述指示灯控制事件对应的目标事件命令码;

5、根据所述目标事件命令码从所述事件配置文件中确定出待控制的目标fru指示灯、所述目标fru指示灯的待点亮类型和待点亮动作,以及所述待点亮类型和所述待点亮动作分别对应的点灯类型优先级和点灯操作优先级;

6、获取所述目标fru指示灯上一次的点亮类型和点亮动作,得到上次点亮类型和上次点亮动作,并判断所述上次点亮类型与所述待点亮类型,以及所述上次点亮动作与所述待点亮动作是否均一致;

7、若所述上次点亮类型与所述待点亮类型,和/或所述上次点亮动作与所述待点亮动作不一致,则向所述基板管理控制器发送针对所述目标fru指示灯的灯控指令,以按照所述点灯类型优先级和/或所述点灯操作优先级对所述目标fru指示灯进行点灯操作。

8、可选的,所述fru指示灯控制方法,还包括:

9、采集不同指示灯控制事件对应的fru指示灯的名称、点灯接口调用码、指示灯数量、待点亮类型和待点亮动作以及点灯类型优先级和点灯操作优先级,得到所述事件配置文件。

10、可选的,所述fru指示灯控制方法,还包括:

11、依次创建当前灯控事件数组、历史点灯状态数组和当前点灯状态数组,并对所述当前灯控事件数组、所述历史点灯状态数组和所述当前点灯状态数组进行初始化;

12、读取所述事件配置文件,并将所述事件配置文件中的数据加载至内存中。

13、可选的,所述根据所述第一编码和所述第二编码从所述事件配置文件中确定与所述指示灯控制事件对应的目标事件命令码,包括:

14、若所述第二编码为表示灯点亮操作的编码,则将所述当前灯控事件数组的下标设置为所述第一编码,并将所述当前灯控事件数组中的值加1;

15、若所述第二编码为表示灯熄灭操作的编码,则将所述当前灯控事件数组的下标设置为所述第一编码,并将所述当前灯控事件数组中的值减1;

16、遍历所述当前灯控事件数组,并判断所述当前灯控事件数组中的值是否等于0;

17、若所述当前灯控事件数组中的值不等于0,则根据所述当前灯控事件数组的下标从所述事件配置文件中确定出与所述指示灯控制事件对应的目标事件命令码。

18、可选的,所述根据所述目标事件命令码从所述事件配置文件中确定出待控制的目标fru指示灯、所述目标fru指示灯的待点亮类型和待点亮动作,以及所述待点亮类型和所述待点亮动作分别对应的点灯类型优先级和点灯操作优先级之后,还包括:

19、将所述目标fru指示灯的名称、所述目标fru指示灯的待点亮类型和待点亮动作写入至所述当前点灯状态数组中;

20、相应的,所述获取所述目标fru指示灯上一次的点亮类型和点亮动作,得到上次点亮类型和上次点亮动作,并判断所述上次点亮类型与所述待点亮类型,以及所述上次点亮动作与所述待点亮动作是否均一致,包括:

21、判断所述历史点灯状态数组中是否存在与所述目标fru指示灯的名称相同的指示灯;

22、若所述历史点灯状态数组中存在与所述目标fru指示灯的名称相同的指示灯,则从所述历史点灯状态数组中获取所述目标fru指示灯上一次的点亮类型和点亮动作,得到上次点亮类型和上次点亮动作,并判断位于所述历史点灯状态数组中的所述上次点亮类型与位于所述当前点灯状态数组中的所述待点亮类型,以及位于所述历史点灯状态数组中的所述上次点亮动作与位于所述当前点灯状态数组中的所述待点亮动作是否均一致。

23、可选的,所述若所述上次点亮类型与所述待点亮类型,和/或所述上次点亮动作与所述待点亮动作不一致,则向所述基板管理控制器发送针对所述目标fru指示灯的灯控指令,以按照所述点灯类型优先级和/或所述点灯操作优先级对所述目标fru指示灯进行点灯操作,包括:

24、若所述上次点亮类型与所述待点亮类型,和/或所述上次点亮动作与所述待点亮动作不一致,则根据所述点灯类型优先级和/或所述点灯操作优先级对所述历史点灯状态数组和所述当前点灯状态数组中同一所述目标fru指示灯对应的点亮类型,和/或点亮动作的优先级进行比较,得到优先级比较结果;

25、若所述优先级比较结果表明所述历史点灯状态数组的优先级高于所述当前点灯状态数组的优先级,则将高优先级对应的点亮类型,和/或点亮动作更新至所述当前点灯状态数组中,并向所述基板管理控制器发送包含所述点灯接口调用码的灯控指令,以根据更新后的所述当前点灯状态数组中的点亮类型和点亮动作以及所述点灯接口调用码对所述目标fru指示灯进行点灯操作。

26、可选的,所述根据更新后的所述当前点灯状态数组中的点亮类型和点亮动作以及所述点灯接口调用码对所述目标fru指示灯进行点灯操作之后,还包括:

27、将所述当前点灯状态数组中记录的所述目标fru指示灯的点亮类型和点亮动作复制到所述历史点灯状态数组中,以对所述历史点灯状态数组中的所述上次点亮类型和所述上次点亮动作进行更新。

28、第二方面,本技术公开了一种fru指示灯控制装置,应用于集成在基板管理控制器上的fru灯控管理组件,所述fru灯控管理组件中包括预先创建的事件配置文件,包括:

29、编码获取模块,用于当监听到由fru器件触发的指示灯控制事件时,获取所述指示灯控制事件中携带的第一编码和第二编码;所述第一编码用于唯一标识所述指示灯控制事件,所述第二编码为用于表示灯点亮操作或灯熄灭操作的编码;

30、命令码确定模块,用于根据所述第一编码和所述第二编码从所述事件配置文件中确定与所述指示灯控制事件对应的目标事件命令码;

31、信息确定模块,用于根据所述目标事件命令码从所述事件配置文件中确定出待控制的目标fru指示灯、所述目标fru指示灯的待点亮类型和待点亮动作,以及所述待点亮类型和所述待点亮动作分别对应的点灯类型优先级和点灯操作优先级;

32、历史信息获取模块,用于获取所述目标fru指示灯上一次的点亮类型和点亮动作,得到上次点亮类型和上次点亮动作;

33、判断模块,用于判断所述上次点亮类型与所述待点亮类型,以及所述上次点亮动作与所述待点亮动作是否均一致;

34、灯控指令发送模块,用于如果所述上次点亮类型与所述待点亮类型,和/或所述上次点亮动作与所述待点亮动作不一致,则向所述基板管理控制器发送针对所述目标fru指示灯的灯控指令,以按照所述点灯类型优先级和/或所述点灯操作优先级对所述目标fru指示灯进行点灯操作。

35、第三方面,本技术公开了一种电子设备,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现前述的fru指示灯控制方法。

36、第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述的fru指示灯控制方法。

37、可见,本技术应用于集成在基板管理控制器上的fru灯控管理组件,所述fru灯控管理组件中包括预先创建的事件配置文件,当监听到由fru器件触发的指示灯控制事件时,先获取所述指示灯控制事件中携带的第一编码和第二编码,然后根据所述第一编码和所述第二编码从所述事件配置文件中确定与所述指示灯控制事件对应的目标事件命令码,并根据所述目标事件命令码从所述事件配置文件中确定出待控制的目标fru指示灯、所述目标fru指示灯的待点亮类型和待点亮动作,以及所述待点亮类型和所述待点亮动作分别对应的点灯类型优先级和点灯操作优先级,再获取所述目标fru指示灯上一次的点亮类型和点亮动作,得到上次点亮类型和上次点亮动作,并判断所述上次点亮类型与所述待点亮类型,以及所述上次点亮动作与所述待点亮动作是否均一致,若所述上次点亮类型与所述待点亮类型,和/或所述上次点亮动作与所述待点亮动作不一致,则向所述基板管理控制器发送针对所述目标fru指示灯的灯控指令,以按照所述点灯类型优先级和/或所述点灯操作优先级对所述目标fru指示灯进行点灯操作。本技术预先在基板管理控制器上集成了包含事件配置文件的fru灯控管理组件,其中,事件配置文件中记录了各种指示灯控制事件的相关信息,具体包括指示灯控制事件对应的事件命令码、待控制的fru指示灯、fru指示灯的待点亮类型和待点亮动作以及相应的点灯类型优先级和点灯操作优先级,通过文件的方式,可以将传统的基于进程的灯控方式转换为基于事件驱动的灯控方式,并且通过对配置文件的维护,可以直接添加、修改灯控操作相关的信息,如优先级的调整,不需要对整个灯控代码进行调整,从而降低了bmc中各种灯状态管理操作的复杂度,简化了灯控逻辑,并提高了灯控的效率和灵活性,另外,由于直接在配置文件中预先记录了所需的优先级,因此可以按照预期的顺序对灯进行点亮,从而确保了灯控的准确性和顺序性。

本文地址:https://www.jishuxx.com/zhuanli/20240801/247293.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。