Documentation
¶
Index ¶
- func GetBatteryHealth(batteryStats *types.BatteryStats) (float64, error)
- func GetBatteryStats() (*types.BatteryStats, error)
- func GetInputDevices() ([]types.InputDevice, error)
- func GetMachineInfo() (types.MachineInfo, error)
- func GetPCIDeviceByIDs(vendorID, deviceID string) (types.PCIDeviceMapDevice, string, error)
- func GetPCIDevices() ([]types.PCIDevice, error)
- func GetPeripheralList() ([]types.Peripheral, error)
- func LoadPCIDeviceMap() error
- func MapChassisType(chassisTypeID int) types.ChassisType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetBatteryHealth ¶
func GetBatteryHealth(batteryStats *types.BatteryStats) (float64, error)
GetBatteryHealth calculates the battery health based on the battery statistics. It returns the battery health percentage.
Example:
batteryStats, err := hardware.GetBatteryStats() if err != nil { fmt.Printf("Error: %v\n", err) return } batteryHealth, err := hardware.GetBatteryHealth(batteryStats) if err != nil { fmt.Printf("Error: %v\n", err) return } fmt.Printf("Health: %f\n", batteryHealth)
func GetBatteryStats ¶
func GetBatteryStats() (*types.BatteryStats, error)
GetBatteryStats retrieves battery statistics using sysfs. If the battery capacity information is not available, it returns nil assuming it's not a portable device.
Example:
batteryStats, err := hardware.GetBatteryStats() if err != nil { fmt.Printf("Error: %v\n", err) return } fmt.Printf("Percentage: %d\n", batteryStats.Percentage) fmt.Printf("Status: %s\n", batteryStats.Status) fmt.Printf("Voltage: %d\n", batteryStats.Voltage)
func GetInputDevices ¶
func GetInputDevices() ([]types.InputDevice, error)
GetInputDevices returns a list of input devices with specific details.
Example:
inputDevices, err := hardware.GetInputDevices() if err != nil { fmt.Printf("Error: %v\n", err) return } for _, inputDevice := range inputDevices { fmt.Printf("Name: %s\n", inputDevice.Name) fmt.Printf("Product: %s\n", inputDevice.Product) }
func GetMachineInfo ¶
func GetMachineInfo() (types.MachineInfo, error)
func GetPCIDeviceByIDs ¶
func GetPCIDeviceByIDs(vendorID, deviceID string) (types.PCIDeviceMapDevice, string, error)
GetPCIDeviceByIDs returns a PCIDeviceMapDevice by vendor ID and device ID, useful for getting the name of a PCI device or the vendor name. It returns an error if the device is not found.
Example:
device, vendorName, err := hardware.GetPCIDeviceByIDs("8086", "10f8") if err != nil { fmt.Printf("Error: %v\n", err) return } fmt.Printf("Device name: %s\n", device.Name) fmt.Printf("Vendor name: %s\n", vendorName)
func GetPCIDevices ¶
GetPCIDevices returns a list of PCI devices from /sys/bus/pci/devices.
Example:
pciDevices, err := hardware.GetPCIDevices() if err != nil { fmt.Printf("Error: %v\n", err) return } for _, pciDevice := range pciDevices { fmt.Printf("ID: %s\n", pciDevice.ID) }
func GetPeripheralList ¶
func GetPeripheralList() ([]types.Peripheral, error)
GetPeripheralList returns a list of all system peripherals.
Example:
peripherals, err := hardware.GetPeripheralList() if err != nil { fmt.Printf("Error: %v\n", err) return } for _, peripheral := range peripherals { fmt.Printf("ID: %s\n", peripheral.ID) fmt.Printf("Name: %s\n", peripheral.Name) fmt.Printf("Type: %s\n", peripheral.Type) }
func LoadPCIDeviceMap ¶
func LoadPCIDeviceMap() error
LoadPCIDeviceMap loads the PCI IDs from /usr/share/misc/pci.ids. This function should be called at the beginning of the program or before using any other function from this package.
# File syntax Syntax: # vendor vendor_name # device device_name <-- single tab # subvendor subdevice subsystem_name <-- two tabs # ...
Example:
err := hardware.Loadtypes.PCIDeviceMap() if err != nil { fmt.Printf("Error: %v\n", err) return }
Notes:
Subdevice is not supported yet.
func MapChassisType ¶
func MapChassisType(chassisTypeID int) types.ChassisType
MapChassisType maps the chassis type to a standardized representation. Refer to https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.7.0.pdf section 7.4.1 (System Enclosure or Chassis Types) and https://superuser.com/a/1107191 for more information.
Types ¶
This section is empty.