CN107682223B - 一种快速测试电源管理总线功能的方法 - Google Patents
一种快速测试电源管理总线功能的方法 Download PDFInfo
- Publication number
- CN107682223B CN107682223B CN201710911072.5A CN201710911072A CN107682223B CN 107682223 B CN107682223 B CN 107682223B CN 201710911072 A CN201710911072 A CN 201710911072A CN 107682223 B CN107682223 B CN 107682223B
- Authority
- CN
- China
- Prior art keywords
- module
- power
- value
- limiting
- conversion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims abstract description 61
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 206010028980 Neoplasm Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 201000011510 cancer Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
Abstract
本发明涉及一种快速测试电源管理总线功能的方法,其特征在于,包括如下步骤:确认模块确认执行的参数值;查询模块查询电源管理总线当前的功率,获取返回值,传送到第一转换模块,第一转换模块将获取到的返回值进行进制转换并传送到显示模块进行显示;写入模块写入最大功率值,功率限制模块设置功率限制值,第二转换模块对限制功率值进行进制转换,转换成功执行功率限制策略;查询模块获取当前功率限制值,传送到第一转换模块,第一转换模块对获取的功率限制数值进行进制转换并传送到显示模块进行显示;解除模块对当前的功率限制进行解除。
Description
技术领域
本发明属于总线功能测试技术领域,具体涉及一种快速测试电源管理总线功能的方法。
背景技术
电源pmbus(Power Management Bus,电源管理总线),是一种数字电源管理协议,用来定义电源适配器与其他设备的通信,测试通过pmbus功能来时实现对电源功率的限制,解除,查询等。
传统的测试方式需要手动输入大量命令对电源功率的限制,解除,查询,操作过程可能导致的人为错误,查询结果需要人为的进制转换、数值读取等操作,对linux***不熟悉的人员很难进行测试。此为现有技术的不足之处。
发明内容
本发明的目的在于,针对上述现有技术存在的缺陷,提供设计一种快速测试电源管理总线功能的方法,以解决上述技术问题。
为了达到上述目的,本发明的技术方案是:
一种快速测试电源管理总线功能的方法,包括如下步骤:
确认模块确认执行的参数值;
查询模块查询电源管理总线当前的功率,获取返回值,传送到第一转换模块,第一转换模块将获取到的返回值进行进制转换并传送到显示模块进行显示;
写入模块写入最大功率值,功率限制模块设置功率限制值,第二转换模块对设置的限制功率值进行进制转换,若转换成功执行功率限制策略;
查询模块获取当前功率限制值,传送到第一转换模块,第一转换模块对获取的功率限制数值进行进制转换并传送到显示模块进行显示;
解除模块对当前的功率限制进行解除。
进一步的,确认模块确认执行的参数值,所述的参数值包括执行本地策略设定的参数值和执行远程策略的参数值。
进一步的,确认模块确认执行远程策略的参数值还包括:
写入模块写入远程BMC的IP地址,与远程BMC建立链接。
进一步的,第一转换模块将获取到的返回值进行进制转换并传送到显示模块进行显示还包括:
第一转换模块将获取到的16进制返回值转换为10进制,返回10进制的功率值并传送到显示模块进行功率值显示。
进一步的,写入模块写入最大功率值,功率限制模块设置功率限制值,第二转换模块对设置的限制功率值进行进制转换,若转换成功执行功率限制策略,包括:
写入模块写入10进制最大功率值,功率限制模块设置功率限制值,第二转换模块将功率限制值转换为16进制,若转换失败,控制模块判断写入异常控制程序退出;若转换成功,执行功率限制策略。
进一步的,查询模块获取功率限制数值,传送到第一转换模块,第一转换模块对获取的功率限制数值进行进制转换并传送到显示模块进行显示包括:
查询模块获取16进制功率限制值,第一转换模块将16进制功率限制值转换为10进制并传送到显示模块进行10进制和16进制功率限制值的显示。
进一步的,该方法还包括,设置模块分别给查询模块查询当前功率、功率限制模块限制功率限制值、查询模块查询当前的功率限制和解除模块解除功率限制的操作过程设置快捷功能方式。
进一步的,设置功能方式“1”为查询当前功率;
设置功能方式“2”,同时写入模块写入10进制最大功率值,功率限制模块限制功率至80%,并进行10进制限制功率值的显示;
设置功能方式“3” 为查询模块查询当前的功率限制值(10进制、16进制);
设置功能方式“4”为解除模块解除当前的功率限制。
本发明的有益效果在于,本发明提供的方法可以方便的嵌入到自动化测试框架中,实现无人化测试,可使测试人员在仅输入简单命令和功能数字的条件下,完成电源管理总线功能测试,降低了对测试人员的技术和知识要求,提高了测试效率,大量节约了测试成本。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1为本发明提供的一种快速测试电源管理总线功能的方法流程图。
具体实施方式
下面结合图1并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。
实施例1提供的一种快速测试电源管理总线功能的方法,包括如下步骤:
确认模块确认执行的参数值;
查询模块查询电源管理总线当前的功率,获取返回值,传送到第一转换模块,第一转换模块将获取到的返回值进行进制转换并传送到显示模块进行显示;
写入模块写入最大功率值,功率限制模块设置功率限制值,第二转换模块对设置的限制功率值进行进制转换,若转换成功执行功率限制策略;
查询模块获取当前功率限制值,传送到第一转换模块,第一转换模块对获取的功率限制数值进行进制转换并传送到显示模块进行显示;
解除模块对当前的功率限制进行解除。
确认模块确认执行的参数值,所述的参数值包括执行本地策略设定的参数值和执行远程策略的参数值。
确认模块确认执行远程策略的参数值还包括:
写入模块写入远程BMC的IP地址,与远程BMC建立链接。
第一转换模块将获取到的返回值进行进制转换并传送到显示模块进行显示还包括:
第一转换模块将获取到的16进制返回值转换为10进制,返回10进制的功率值并传送到显示模块进行功率值显示。
写入模块写入最大功率值,功率限制模块设置功率限制值,第二转换模块对设置的限制功率值进行进制转换,若转换成功执行功率限制策略还包括:写入模块写入10进制最大功率值,功率限制模块设置功率限制值,第二转换模块将功率限制值转换为16进制,若转换失败,控制模块判断写入异常控制程序退出;若转换成功,执行功率限制策略。
查询模块获取功率限制数值,传送到第一转换模块,第一转换模块对获取的功率限制数值进行进制转换并传送到显示模块进行显示包括:
查询模块获取16进制功率限制值,第一转换模块将16进制功率限制值转换为10进制并传送到显示模块进行10进制和16进制功率限制值的显示。
该方法还包括,设置模块分别给查询模块查询当前功率、功率限制模块限制功率限制值、查询模块查询当前的功率限制和解除模块解除功率限制的操作过程设置快捷功能方式。
设置功能方式“1”为查询当前功率;
设置功能方式“2”,同时写入模块写入10进制最大功率值,功率限制模块限制功率至80%,并进行10进制限制功率值的显示;
设置功能方式“3” 为查询模块查询当前的功率限制值(10进制、16进制);
设置功能方式“4”为解除模块解除当前的功率限制。
实施例2提供的一种快速测试电源管理总线功能的方法,具体实现过程如下:
实现远程机器电源管理总线pmbus功能测试:
(1)执行 ./pmus –r ,输入远程bmc ip
[root@ml Desktop]# ./pmbus-r
Enter the ip-addr:100.2.37.17
1.Query current power
2.Limit power
3.Query power limit
4.Cancel powei limit
-.Enter’exit’to quit!
Enter the number of action you want to execute:
(2)查询当前total power,输入1,获取当前功率
Enter the number of action you want to execute:1
Current power is 115 W!
(3)功率限制,选择模式2,输入最大功率,自动计算进制转换,并限制功率至80%
Enter the number of action you want to execute:2
Please enter your max total-power in 10 hex:250
Your power limit will be limit to 200 W
Power limited successfully!
(4)查询当前功率限制,选择模式3,用10进制和16进制显示功率限制值
Enter the number of action you want to execute:3
Power limit in 10 hex is 200.
Power limit in 16 hex is 00C8.
(5)取消功率限制,选择模式4,取消功率限制
Enter the number of action you want to execute:4
WARNING!
Your power limit will discard immediately!
Enter ‘ABORT’to abort,any other key to continue:
>>Reset finished<<
(6)查询当前功率
Enter the number of action you want to execute:3
Your power has no limit!
实现本地机器的电源管理总线pmbus功能测试:
执行./pmus –l,无需输入远程bmc ip,其余步骤与远程端测试相同;
[root@ml Desktop]# ./pmbus-l
1.Query current power
2.Limit power
3.Query power limit
4.Cancel powei limit
-.Enter’exit’to quit!
Enter the number of action you want to execute:
具体代码实现:
#!/bin/bash
# Script Name: pmbus
# Program:
# This scripts used to test pmbus function.
# Designed to control both remote and local server.
# 帮助信息模块
function help(){
echo "Usage: pmbus [-r | --remote ] Performing remotecontrol"
echo " pmbus [-l | --local ] Performing local control"
echo " pmbus [-h | --help ] Show this message"
echo
exit 0
}
if [ "$1" == "" ];then
help
break
fi
while getopts "rlh" options #检测输入参数
do
case $options in
r) #远程测试功能
echo
read -p "Enter the ip-addr: " serverip
ipmitool="ipmitool -I lanplus -H $serverip -U admin -P admin"
;;
l) #本地测试功能
echo
ipmitool="ipmitool"
;;
*) #其余显示帮助信息
help
break
;;
esac
done
while true
do
echo # 显示功能菜单
echo -e "\033[34m 1. Query current power \033[0m" #查询功率
echo -e "\033[34m 2. Limit power \033[0m" # 功率限制
echo -e "\033[34m 3. Query power limit \033[0m" #查询功率限制
echo -e "\033[34m 4. Cancel power limit \033[0m" #解除功率限制
echo -e "\033[31m -. Enter 'exit' to quit!" # 退出
echo -e "\033[31m"
read -p "Enter the number of action you want to execute: " action
echo -e "\033[0m"
case $action in
"1") #查询功率并转换为10进制
value=`$ipmitool -b 0x06 -t 0x2c raw 0x2e 0xc8 0x57 0x01 0x000x01 0x00 0x01`
value_1=`echo $value | cut -d' ' -f4 | tr [a-z] [A-Z]`
value_2=`echo $value | cut -d' ' -f5`
value_3=`echo "ibase=16; $value_1" | bc`
value_4=`echo "ibase=16; $value_2" | bc`
power=$((value_3 + value_4*256))
blank
echo -e "\033[33mCurrent power is $power W! \033[0m"
blank
;;
"2") #设置功率限制数值
read -p "Please enter your max total-power in 10 hex: " maxp
blank
echo -e "\033[33mYour power limit will be limit to $((maxp*8/10))W \033[0m"
blank
plimit=$(echo "obase=16; $((maxp*8/10))" | bc)
length=`echo $plimit | wc -L`
if [ $length == 3 ];then
a=`echo ${plimit:0:1}`
b=`echo ${plimit:1:2}`
elif [ $length == 2 ];then
a=00
b=`echo $plimit`
else
blank
echo -e "\033[31m For unknow reason, operation aborted! Askauthor for help!\033[0m"
blank
break
fi
$ipmitool -b 0x06 -t 0x2c raw 0x2e 0xd0 0x57 0x01 0x00 0x00 0x$b0x$a > /dev/null
blank
echo -e "\033[33mPower limited successfully! \033[0m"
blank
;;
"3") #查询功率限制数值
value=`$ipmitool -b 0x06 -t 0x2c raw 0x2e 0xd1 0x57 0x01 0x00 0x00`
value_1=`echo $value | cut -d' ' -f4 | tr [a-z] [A-Z]`
value_2=`echo $value | cut -d' ' -f5`
value_3=`echo "ibase=16; $value_1" | bc`
value_4=`echo "ibase=16; $value_2" | bc`
power=$((value_3 + value_4*256))
if [ $power == 0 ];then
blank
echo -e "\033[33mYour power has no limit!\033[0m"
blank
else
blank
echo -e "\033[33mPower limit in 10 hex is $power. \033[0m"
echo -e "\033[33mPower limit in 16 hex is $value_2$value_1.\033[0m"
blank
fi
;;
"4") #解除功率限制
blank
echo -e "\033[31m WARNING! \033[0m"
echo -e "\033[31mYour power limit will discard immediately! \033[0m"
blank
read -p "Enter 'ABORT' to abort, any other key to continue: " go
if [ "$go" == "ABORT" ];then
break
fi
$ipmitool -b 0x06 -t 0x2c raw 0x2e 0xdf 0x57 0x01 0x00 0x02 > /dev/null
blank
echo -e "\033[33m>> Reset finished <<\033[0m"
blank
;;
"exit")
blank
echo -e "\033[31m>> Program terminated! <<\033[0m"
blank
break
;;
*)
blank
echo -e "\033[31m>> You input wrong number! <<\033[0m"
blank
;;
esac
done
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (3)
1.一种快速测试电源管理总线功能的方法,其特征在于,包括如下步骤:
确认模块确认执行的参数值;其中,参数值包括本地策略设定的参数值和远程策略的参数值;
设置模块分别给查询模块查询当前功率、功率限制模块限制功率限制值、查询模块查询当前的功率限制和解除模块解除功率限制的操作过程设置快捷功能方式;
查询模块查询电源管理总线当前的功率,获取返回值,传送到第一转换模块,第一转换模块将获取到的16进制返回值转换为10进制,返回10进制的功率值并传送到显示模块进行功率值显示;
写入模块写入10进制最大功率值,功率限制模块设置功率限制值,第二转换模块将10进制功率限制值转换为16进制,若转换失败,控制模块判断写入异常控制程序退出;若转换成功,执行功率限制策略;
查询模块获取16进制功率限制值,第一转换模块将16进制功率限制值转换为10进制并传送到显示模块进行10进制和16进制功率限制值的显示;
解除模块对当前的功率限制进行解除。
2.根据权利要求1所述的一种快速测试电源管理总线功能的方法,其特征在于,远程策略的参数值包括:远程BMC的IP地址。
3.根据权利要求2所述的一种快速测试电源管理总线功能的方法,其特征在于,设置模块分别给查询模块查询当前功率、功率限制模块限制功率限制值、查询模块查询当前的功率限制和解除模块解除功率限制的操作过程设置快捷功能方式具体包括:
设置模块给查询模块设置功能方式“1”为查询当前功率;
设置模块给功率限制模块设置功能方式“2”,当写入模块写入10进制最大功率值时,功率限制模块限制功率至80%,并进行10进制限制功率值的显示;
设置模块给查询模块设置功能方式“3”为查询模块查询当前的功率限制值;
设置模块给解除模块设置功能方式“4”为解除模块解除当前的功率限制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911072.5A CN107682223B (zh) | 2017-09-29 | 2017-09-29 | 一种快速测试电源管理总线功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710911072.5A CN107682223B (zh) | 2017-09-29 | 2017-09-29 | 一种快速测试电源管理总线功能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107682223A CN107682223A (zh) | 2018-02-09 |
CN107682223B true CN107682223B (zh) | 2021-09-28 |
Family
ID=61139427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710911072.5A Active CN107682223B (zh) | 2017-09-29 | 2017-09-29 | 一种快速测试电源管理总线功能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107682223B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109270473B (zh) * | 2018-10-17 | 2024-03-12 | 郑州云海信息技术有限公司 | 一种检验电源功能的方法和*** |
CN111142643B (zh) * | 2019-12-25 | 2021-07-16 | 浪潮商用机器有限公司 | 一种电源芯片供电策略修改方法、装置及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176155A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种测量仪器的检测方法及装置 |
US8996890B2 (en) * | 2008-02-07 | 2015-03-31 | Dell Products L.P. | Method for power conservation in virtualized environments |
TW201514675A (zh) * | 2013-09-05 | 2015-04-16 | Hon Hai Prec Ind Co Ltd | 資料中心電源調配方法及系統 |
CN106292972A (zh) * | 2015-06-29 | 2017-01-04 | 联想企业解决方案(新加坡)有限公司 | 用于计算服务器的供电回路 |
CN106371540A (zh) * | 2016-08-25 | 2017-02-01 | 联想(北京)有限公司 | ***电源管理方法、芯片及电子设备 |
-
2017
- 2017-09-29 CN CN201710911072.5A patent/CN107682223B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996890B2 (en) * | 2008-02-07 | 2015-03-31 | Dell Products L.P. | Method for power conservation in virtualized environments |
CN103176155A (zh) * | 2011-12-21 | 2013-06-26 | 北京普源精电科技有限公司 | 一种测量仪器的检测方法及装置 |
TW201514675A (zh) * | 2013-09-05 | 2015-04-16 | Hon Hai Prec Ind Co Ltd | 資料中心電源調配方法及系統 |
CN106292972A (zh) * | 2015-06-29 | 2017-01-04 | 联想企业解决方案(新加坡)有限公司 | 用于计算服务器的供电回路 |
CN106371540A (zh) * | 2016-08-25 | 2017-02-01 | 联想(北京)有限公司 | ***电源管理方法、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107682223A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103905333A (zh) | 一种物联网多协议接入转换装置及其控制方法 | |
CN107682223B (zh) | 一种快速测试电源管理总线功能的方法 | |
CN105897652A (zh) | 一种基于标准协议的异构终端动态接入方法 | |
CN105302621A (zh) | 一种远程实现服务器BIOS Setup恢复初始值的方法 | |
CN111736867A (zh) | 一种fpga更新设备、方法以及存储介质 | |
CN103152199A (zh) | 远程批量配置网络设备的方法及*** | |
WO2016197883A1 (zh) | 一种在线更新单片机程序的方法及*** | |
CN114039808A (zh) | 基于can的多通道的can/lin/sent转发协议 | |
WO2017049556A1 (zh) | 数据传输方法和移动终端 | |
WO2017107429A1 (zh) | 互联应用的操作处理方法、装置、设备及非易失性计算机存储介质 | |
CN108984216A (zh) | 一种自动进入与配置bios的方法与装置 | |
CN102073344A (zh) | 具有无线模块的刀片服务器管理模块以及刀片服务器*** | |
CN104243253B (zh) | 一种客户端接入设备的控制方法和*** | |
CN108173699B (zh) | 一种基于Marvell交换芯片在获取报文源端口时CPU高效处理方法 | |
CN117834750B (zh) | 获取协议数据的装置、方法、***、设备、介质及服务器 | |
CN103927153B (zh) | 一种***配置的方法、设备及*** | |
WO2019179392A1 (zh) | 报文的生成方法及相关设备 | |
CN105354120A (zh) | 一种智能变电站的scd文件检查装置 | |
CN104572397A (zh) | 一种服务器状态实时监控实现方式 | |
CN105281972B (zh) | 1553b总线的对比采集结构及对比采集方法 | |
CN204131552U (zh) | 电压监测仪远程升级*** | |
CN211062060U (zh) | 一种笔迹采集装置 | |
CN101631132A (zh) | 基于Socket连接的数据传输***及方法 | |
CN108063695B (zh) | 通信指令组态方法、组态装置及数据采集方法、采集装置 | |
Qiang et al. | The design and implementation of CAN node intelligent communication interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |