问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何使用OpenHardwareMonitorServer获取硬件监控信息

创作时间:
作者:
@小白创作中心

如何使用OpenHardwareMonitorServer获取硬件监控信息

引用
CSDN
1.
https://blog.csdn.net/qq_44684238/article/details/145589848

本文介绍了一个基于OpenHardwareMonitor的Web服务器工具——OpenHardwareMonitorServer,它可以帮助用户获取CPU、GPU、硬盘、网卡、内存等硬件的性能监控数据和温度传感器信息。

OpenHardwareMonitorServer简介

OpenHardwareMonitorServer是一个基于OpenHardwareMonitor的Web服务器,可以让任何语言都可以获取硬件信息和值。该程序没有UI界面,因此可以作为控制台程序使用。

参数说明

该程序的可用参数如下:

  • -p:指定WEB端口并开启服务器(默认8080)
  • --console:以控制台Json格式返回硬件信息(默认false)
  • --group:以群组格式返回硬件信息(默认true)
  • --mainboard:启用主板监控(默认true)
  • --cpu:启用CPU监控(默认true)
  • --ram:启用内存监控(默认true)
  • --gpu:启用GPU监控(默认true)
  • --fan:启用风扇控制器监控(默认true)
  • --hdd:启用硬盘监控(默认true)
  • --network:启用网络监控(默认true)

JSON实体类

以下是Kotlin语言的JSON实体类定义:

data class ExampleGenerate (
    val mainboard: List<Hardware>,
    val cpu: List<Hardware>,
    val ram: List<Hardware>,
    val gpuNvidia: List<Hardware>,
    val network: List<Hardware>,
    val hdd: List<Hardware>
)

data class Hardware (
    val hardwareType: Long,
    val hasModelSpecificRegisters: Boolean?,
    val hasTimeStampCounter: Boolean?,
    val timeStampCounterFrequency: Double?,
    val subHardware: List<Any?>,
    val parent: Any? = null,
    val sensors: List<Sensor>,
    val name: String,
    val identifier: String,
)

data class Sensor (
    val sensorType: Long,
    val identifier: String,
    val name: String,
    val index: Long,
    val isDefaultHidden: Boolean,
    val value: Double,
    val min: Double,
    val max: Double,
    val control: Any? = null
)

可获取的硬件信息

以下是该工具可以获取的硬件信息及其JSON数据结构:

接口信息

JSON数据整体结构

  • Mainboard:主板信息
  • CPU:CPU(中央处理器)信息
  • RAM:内存(RAM)数据
  • GpuNvidia:NVIDIA显卡信息
  • HDD:硬盘(磁盘)信息

主板(Mainboard)数据结构

  • Name:主板名称(例如:Lenovo LNVNB161216)
  • Identifier:设备唯一标识符(例如:/mainboard)
  • HardwareType:硬件类型编号(0表示主板)
  • Parent:父设备信息(主板一般无父设备)
  • SubHardware:子硬件列表(目前为空数组)
  • Sensors:传感器数据列表(目前为空数组)

CPU数据结构

CPU基本信息
  • Name:CPU名称(例如:AMD Ryzen 5 5600H)
  • Identifier:设备标识符(例如:/amdcpu/0)
  • HardwareType:硬件类型编号(2表示CPU)
  • HasModelSpecificRegisters:是否支持特定寄存器
  • HasTimeStampCounter:是否支持时间戳计数器
  • TimeStampCounterFrequency:时间戳计数器频率(例如:3293.7214576025804)
  • SubHardware:子硬件列表(目前为空数组)
  • Sensors:CPU相关的传感器数据(包括负载、功率、温度、时钟等)
CPU传感器字段说明
  • SensorType:传感器类型编号(如1:时钟、2:温度、3:负载、9:功率)
  • Identifier:传感器唯一标识符(例如:/amdcpu/0/load/1表示第1核负载)
  • Name:传感器名称(例如:CPU Core #1)
  • Index:传感器索引,用于区分同类传感器
  • IsDefaultHidden:是否默认隐藏(前端显示时可依据此字段过滤)
  • Value:当前传感器读数(例如:负载百分比、功率数值、温度等)
  • Min:传感器最小可能值
  • Max:传感器最大可能值
  • Control:控制字段,目前一般为null,可用于未来扩展(如风扇控制等)

内存(RAM)数据结构

  • Name:内存名称(例如:Generic Memory)
  • Identifier:设备标识符(例如:/ram)
  • HardwareType:硬件类型编号(3表示内存)
  • SubHardware:子硬件列表(目前为空数组)
  • Sensors:内存传感器数据,包含负载、已使用内存和可用内存信息
内存传感器说明
  • 内存负载:3,内存整体使用负载(百分比)
  • Used Memory:10,已使用内存(数值,单位视情况而定)
  • Available Memory:10,可用内存(数值,单位视情况而定)

NVIDIA显卡(GpuNvidia)数据结构

  • Name:显卡名称(例如:NVIDIA NVIDIA GeForce RTX 3050 Ti Laptop GPU)
  • Identifier:设备标识符(例如:/nvidiagpu/0)
  • HardwareType:硬件类型编号(4表示显卡)
  • SubHardware:子硬件列表(目前为空数组)
  • Sensors:显卡传感器数据,包含温度、核心时钟、显存频率、负载和显存使用信息
显卡传感器说明(部分)
  • GPU Core:2,GPU核心温度(摄氏度)
  • GPU Core:1,GPU核心时钟频率(MHz)
  • GPU Memory:1,GPU显存时钟频率(MHz)
  • GPU Load:3,GPU负载(百分比)
  • GPU Memory:11,显存使用数据(总、已用、剩余)

硬盘(HDD)数据结构

  • Name:硬盘名称(例如:Generic Hard Disk)
  • Identifier:设备标识符(例如:/hdd/0、/hdd/1等)
  • HardwareType:硬件类型编号(8表示硬盘)
  • SubHardware:子硬件列表(目前为空数组)
  • Sensors:硬盘传感器数据,主要关注磁盘已使用空间百分比信息
硬盘传感器说明
  • Used Space:3,硬盘已使用空间百分比

传感器类型对应说明

  • 1:时钟频率(单位:MHz)
  • 2:温度(单位:摄氏度)
  • 3:负载或使用率(百分比)
  • 9:功率(单位:瓦特)
  • 10:内存相关数据(内存使用情况)
  • 11:显存相关数据(总、已用、剩余)
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号