一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种在SOL页面展示BIOS设置界面光标的控制方法与流程

2022-12-31 14:34:53 来源:中国专利 TAG:

一种在sol页面展示bios设置界面光标的控制方法
技术领域
1.本发明涉及一种光标控制方法,尤其涉及一种在sol页面展示bios设置界面光标的控制方法。


背景技术:

2.服务器主板上的bmc管理软件提供了用于远程修改bios配置的sol功能。当bios打开串口重定向功能后,用户即可在bmc的前端网页上使用sol功能远程配置bios。bios只有在初次建立sol连接时,才会传输设置界面的全量完整图像数据和光标数据给bmc。其他情况下,只会在上一次数据的基础上,按需传输少量的有变化部分的vt100 控制码数据给bmc。所以bmc需要保存图像数据和光标位置坐标供前端绘制图像时使用。在用户通过sol功能控制光标在bios设置界面的同一页面移动时,只有光标位置坐标和极少部分图像数据发生了变化,所以bios只会传输变化部分的图像数据和光标的位置数据给bmc。此时在bmc前端页面使用单一画布绘制bios设置界面图像时,会因为附加光标图像到原始图像,破坏bmc保存的原始图像数据中光标所在位置的像素。这样就会导致在最终展示给客户的图像中,出现多个与光标同样大小的黑色无像素方块,影响用户的判断和体验。


技术实现要素:

3.本发明所要解决的技术问题是需要提供一种能够避免光标移动产生黑色无像素方块,避免原始图像数据被破坏的在sol页面展示bios设置界面光标的控制方法,旨在提高sol页面上展示bios设置界面光标的准确度和流畅度,提升用户体验。
4.对此,本发明提供一种在sol页面展示bios设置界面光标的控制方法,包括以下步骤:步骤s1,bmc前端网页和后端sol服务通过网络建立websocket全双工长连接,然后在后端sol服务与bios之间建立串口连接;步骤s2,bmc前端网页接收到后端sol服务通过websocket全双工长连接转发的数据后,解析收到的vt100控制码数据,所述转发的数据为来自bios的vt100控制码数据;步骤s3,判断解析后的数据是否为图像数据,若是,则跳转至步骤s4;若否,则跳转至步骤s5;步骤s4,在隐藏的缓存画布上绘制图像,并将完整的图像数据拷贝至用于展示的可见画布上,完成后跳转至步骤s6;步骤s5,根据光标数据计算光标最终位置,完成后跳转至步骤s6;步骤s6,在可见画布上进行合成绘制和展示;步骤s7,判断是否退出后端sol服务,若是,则结束;若否,则跳转至步骤s8;步骤s8,后端sol服务将websocket网络数据转化成串口数据,并通过串口连接转发给bios,并返回所述步骤s2。
5.本发明的进一步改进在于,所述步骤s2中,在所述步骤s1建立连接之后,bios通过
串口持续传输图像数据和光标数据到所述后端sol服务,然后再由所述后端sol服务根据rfc6455规范编码后,通过websocket全双工长连接转发给bmc前端网页;同时,接收到的键盘操作指令也将由所述bmc前端网页通过websocket全双工长连接发送给所述后端sol服务,再由其根据rfc6455规范解码后,通过串口连接转发给bios。
6.本发明的进一步改进在于,所述步骤s2中,解析收到的vt100控制码数据的过程如下:使用正则表达式从vt100控制码数据中获取具体的控制指令,然后根据所述控制指令在bmc前端网页进行相应的操作。
7.本发明的进一步改进在于,所述步骤s3中,当解析后的数据包括显示字符、设置字符颜色、设置字符背景色和显示空白区域中的任意一种控制指令时,判断为图像数据;当解析后的数据为设置光标位置、移动光标位置、保存光标位置以及恢复光标位置中的任意一种控制指令时,判断为不是图像数据。
8.本发明的进一步改进在于,所述步骤s4中,bmc前端网页在隐藏的缓存画布上绘制对应颜色的字符、字符背景色和空白区域图像到缓存画布上,得到可供展示的原始图像数据;然后,将隐藏的缓存画布中的完整原始图像数据拷贝到用于展示的可见画布上。
9.本发明的进一步改进在于,所述步骤s5中,bmc前端网页根据光标移动偏移量,结合光标的当前坐标,在光标的当前坐标加上所述光标移动偏移量计算出光标的最终位置,并使用光标的最终位置在可见画布上的对应位置上绘制光标图像。
10.本发明的进一步改进在于,所述步骤s6中,对所述步骤s4得到的完整原始图像数据和步骤s5得到的光标图像进行合成绘制,完成后实现展示。
11.本发明的进一步改进在于,所述步骤s8包括以下子步骤:步骤s801,通过sol页面控制bios设置界面;步骤s802,bmc前端网页通过websocket发送控制操作所对应的vt100控制码数据;步骤s803,后端sol服务根据rfc6455规范解码控制数据;步骤s804,后端sol服务通过串口发送解码后的控制数据;步骤s805,bios响应控制数据,然后返回变化部分的vt100控制码。
12.本发明的进一步改进在于,实时检测用户的操作指令,当检测到用户操作bios设置界面所产生的vt100控制码后,刷新隐藏的缓存画布,并在绘制完成后拷贝到可见画布上。
13.本发明还提供一种在sol页面展示bios设置界面光标的控制系统,采用了如上所述的在sol页面展示bios设置界面光标的控制方法,并包括:建立连接模块,bmc前端网页和后端sol服务通过网络建立websocket全双工长连接,然后在后端sol服务与bios之间建立串口连接;解析数据模块,bmc前端网页接收到后端sol服务通过websocket全双工长连接转发的数据后,解析收到的vt100控制码数据,所述转发的数据为来自bios的vt100控制码数据;首次判断模块,判断解析后的数据是否为图像数据,若是,则跳转至图形绘制模块;若否,则跳转至光标位置确定模块;图形绘制模块,在隐藏的缓存画布上绘制图像,并将完整的图像数据拷贝至用于展示的可见画布上,完成后跳转至合成绘制模块;
光标位置确定模块,根据光标数据计算光标最终位置,完成后跳转至合成绘制模块;合成绘制模块,在可见画布上进行合成绘制和展示;再次判断模块,判断是否退出后端sol服务,若是,则结束;若否,则跳转至sol响应控制模块;sol响应控制模块,后端sol服务将websocket网络数据转化成串口数据,并通过串口连接转发给bios,并返回所述解析数据模块。
14.与现有技术相比,本发明的有益效果在于:优化了整体的控制过程,采用隐藏的缓存画布更新和备份原始图像数据,保证原始图像数据的完整性,然后将完整的图像数据拷贝至用于展示的可见画布上,确定光标数据计算光标最终位置,再进行合成绘制和展示,进而使得最终展现给用户的完整图像中,彻底避免了因为单一画布绘制而导致的图像损坏问题,也能够有效地避免因为光标移动而产生黑色无像素方块等弊端,本发明能够很好地提高在sol页面上展示bios设置界面光标的准确度和流畅度,极大地提升了用户体验。
附图说明
15.图1是本发明一种实施例的工作流程示意图;图2是本发明一种实施例的详细工作流程示意图。
具体实施方式
16.下面结合附图,对本发明的较优的实施例作进一步的详细说明。
17.在使用sol功能期间,用户的按键指令会由bmc转发给bios,同时bios也会使用vt100 控制码,持续按需传输其设置界面的图像数据和当前的光标数据给bmc。bios传输给bmc的vt100控制码数据不包含光标图像数据,只有光标在bios界面上的位置或者光标的控制动作。光标位置代表了bios设置界面当前的焦点项目,bmc前端需要将得自bios的图像数据和光标数据结合,最终在网页上展示对用户友好的带有光标的bios设置界面实际图像。
18.本技术所使用的英文缩写中,bmc表示基板管理控制器,即baseboard management controller,一般内置在主板上,支持行业标准的 ipmi 规范;bmc提供的功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。bios指的是basic input output system,即基本输入输出系统,主要用于计算机开机过程中各种硬件设备的初始化和检测。websocket指的是一种在单个tcp连接上进行全双工通信的协议。vt100 控制码指的是用来在终端扩展显示的代码。rfc6455规范指的是websocket协议规范。sol表示使用ipmi数据包在网络上传输串口数据,即serial over lan,主要用于将串口数据重定向到前端网页。
19.本技术旨在解决bmc前端在通过sol展示bios设置界面图像时,随着用户控制光标的移动,会在界面上出现多个黑色无像素方块的问题,在此基础上,还旨在解决因为单一画布绘制而导致的图像损坏问题。本技术通过使用隐藏的缓存画布,将bmc保存的原始图像数据和用于展示的最终数据分开绘制处理,避免单一画布绘制导致原始图像数据被破坏问题;在通过优化的控制过程之后,最终展现给用户的图像中,不再有因为光标移动产生黑色无像素方块,极大提升了在sol页面展示bios设置界面的用户体验。
20.如图1和图2所示,本实施例提供一种在sol页面展示bios设置界面光标的控制方
法,包括以下步骤:步骤s1,bmc前端网页和后端sol服务通过网络建立websocket全双工长连接,然后在后端sol服务与bios之间建立串口连接;步骤s2,bmc前端网页接收到后端sol服务通过websocket全双工长连接转发的数据后,解析收到的vt100控制码数据,所述转发的数据为来自bios的vt100控制码数据;步骤s3,判断解析后的数据是否为图像数据,若是,则跳转至步骤s4;若否,则跳转至步骤s5;步骤s4,在隐藏的缓存画布上绘制图像,并将完整的图像数据拷贝至用于展示的可见画布上,完成后跳转至步骤s6;步骤s5,根据光标数据计算光标最终位置,完成后跳转至步骤s6;步骤s6,在可见画布上进行合成绘制和展示;步骤s7,判断是否退出后端sol服务,若是,则结束;若否,则跳转至步骤s8;步骤s8,后端sol服务将websocket网络数据转化成串口数据,并通过串口连接转发给bios,并返回所述步骤s2。
21.本实施例所述步骤s1中,bmc前端开启sol功能后,bmc前端网页和后端sol服务通过网络建立websocket全双工长连接。接着bmc的后端sol服务与bios建立串口连接,bios通过串口持续按需传输图像数据和光标数据到bmc的后端sol服务,然后再由bmc的后端sol服务根据rfc6455规范编码,在编码后经websocket连接转发给bmc前端网页(简称前端网页)。同时,用户的键盘操作指令也将由bmc前端网页通过websocket连接发送给bmc的后端sol服务,再由其根据rfc6455规范解码后,通过串口连接转发给bios。bmc的后端sol服务作为中转站,为bmc前端网页和bios之间的数据传输提供转换和转发功能。
22.本实施例所述步骤s2,bmc前端网页接收到后端sol服务通过websocket全双工长连接转发的数据后,会根据vt100控制码规范,解析收到的vt100控制码数据,所述转发的数据为来自bios的vt100控制码数据。
23.本实施例所述步骤s2中,在所述步骤s1建立连接之后,bios通过串口持续传输图像数据和光标数据到所述后端sol服务,然后再由所述后端sol服务根据rfc6455规范编码后,通过websocket全双工长连接转发给bmc前端网页;同时,接收到的键盘操作指令也将由所述bmc前端网页通过websocket全双工长连接发送给所述后端sol服务,再由其根据rfc6455规范解码后,通过串口连接转发给bios。
24.本实施例所述步骤s2中,解析收到的vt100控制码数据的过程如下:使用正则表达式从vt100控制码数据中获取具体的控制指令,然后根据所述控制指令在bmc前端网页进行相应的操作。
25.如图2所示,本实施例所述步骤s3中,当解析后的数据包括显示字符、设置字符颜色、设置字符背景色和显示空白区域中的任意一种控制指令时,判断为图像数据,跳转至步骤s4;当解析后的数据为设置光标位置、移动光标位置、保存光标位置以及恢复光标位置中的任意一种控制指令时,判断为不是图像数据,跳转至步骤s5。
26.本实施例所述步骤s4中,bmc前端网页在隐藏的缓存画布上绘制对应颜色的字符、字符背景色和空白区域图像到缓存画布上,结合vt100控制码规范即可得到可供展示的原始图像数据;然后,将隐藏的缓存画布中的完整原始图像数据拷贝到用于展示的可见画布
上。这样的设计,能够很好地利用缓存画布避免图像的损坏,进而避免现有技术中出现黑点、黑色无像素方块等情况。
27.本实施例所述步骤s5中,bmc前端网页根据光标移动偏移量,结合光标的当前坐标,在光标的当前坐标加上所述光标移动偏移量计算出光标的最终位置,并使用光标的最终位置在可见画布上的对应位置上绘制光标图像。
28.完成所述步骤s4和步骤s5之后,本实施例所述步骤s6中,对所述步骤s4得到的完整原始图像数据和步骤s5得到的光标图像进行合成绘制,完成后即可在前端页面展示完整的bios设置界面图像供用户查看,实现展示。
29.如图2所示,本实施例所述步骤s8包括以下子步骤:步骤s801,通过sol页面控制bios设置界面;步骤s802,bmc前端网页通过websocket发送控制操作所对应的vt100控制码数据;步骤s803,后端sol服务根据rfc6455规范解码控制数据;步骤s804,后端sol服务通过串口发送解码后的控制数据;步骤s805,bios响应控制数据,然后返回变化部分的vt100控制码。
30.也就是说,在本实施例中,当用户通过sol功能控制bios设置界面的光标 (即焦点)移动时,图像数据部分改变产生的vt100控制码会被bmc前端页面解析,然后直接绘制对应的图像到隐藏的缓存画布上,覆盖相应位置的过时图像,接着再将完整的原始图像数据拷贝到可见的画布上;光标数据部分改变产生的vt100控制码,则会被解析后生成光标的最终位置,绘制到可见画布上。由于每次用户操作bios设置界面产生的vt100控制码都会刷新隐藏的缓存画布,并在绘制完成后拷贝到可见画布上,所以可见画布上的原始图像数据总是完整的。而在此之后才会在可见画布上光标的最终位置绘制光标图像,不会影响除了光标最终位置外其他区域的像素,所以展现给用户的最终图像是完整且准确的。
31.优选的,本实施例实时检测用户的操作指令,当检测到用户操作bios设置界面所产生的vt100控制码后,刷新隐藏的缓存画布,并在绘制完成后拷贝到可见画布上。也就是说,只有在检测到用户的操作指令之后,才开始刷新隐藏的缓存画布以进行绘制,在不需要的时候,所述缓存画布是不调用的,这样,也能够很好地保证其流畅性,避免占用过多的资源。
32.本实施例还提供一种在sol页面展示bios设置界面光标的控制系统,采用了如上所述的在sol页面展示bios设置界面光标的控制方法,并包括:建立连接模块,bmc前端网页和后端sol服务通过网络建立websocket全双工长连接,然后在后端sol服务与bios之间建立串口连接;解析数据模块,bmc前端网页接收到后端sol服务通过websocket全双工长连接转发的数据后,解析收到的vt100控制码数据,所述转发的数据为来自bios的vt100控制码数据;首次判断模块,判断解析后的数据是否为图像数据,若是,则跳转至图形绘制模块;若否,则跳转至光标位置确定模块;图形绘制模块,在隐藏的缓存画布上绘制图像,并将完整的图像数据拷贝至用于展示的可见画布上,完成后跳转至合成绘制模块;光标位置确定模块,根据光标数据计算光标最终位置,完成后跳转至合成绘制模
块;合成绘制模块,在可见画布上进行合成绘制和展示;再次判断模块,判断是否退出后端sol服务,若是,则结束;若否,则跳转至sol响应控制模块;sol响应控制模块,后端sol服务将websocket网络数据转化成串口数据,并通过串口连接转发给bios,并返回所述解析数据模块。
33.综上所述,本实施例优化了整体的控制过程,采用隐藏的缓存画布更新和备份原始图像数据,保证原始图像数据的完整性,然后将完整的图像数据拷贝至用于展示的可见画布上,确定光标数据计算光标最终位置,再进行合成绘制和展示,进而使得最终展现给用户的完整图像中,彻底避免了因为单一画布绘制而导致的图像损坏问题,也能够有效地避免因为光标移动而产生黑色无像素方块等弊端,本发明能够很好地提高在sol页面上展示bios设置界面光标的准确度和流畅度,极大地提升了用户体验。
34.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献