bounty还有6天到期。回答此问题可获得+50声望奖励。Marus Gradinaru正在寻找这个问题的更详细的答案:奖金将给予向我展示如何执行org.freedesktop.UDisks2.Drive.Ata.PmGetState
方法来读取驱动器电源状态的用户。
我尝试在Linux/Raspberry Pi下使用Python读取驱动器电源状态(活动/待机/睡眠)。
我找到了here this answer,它说我可以用udisks2 dbus
来做:
you can get around this by invoking a dbus method on the system bus:
Service: org.freedesktop.UDisks2
Object Path: /org/freedesktop/UDisks2/drives/<ID of the hard drive>
Method: org.freedesktop.UDisks2.Drive.Ata.PmGetState
但我不知道如何实施...
我设法编写了这段代码,执行时没有错误,但我不知道如何继续它...你能帮我吗?
from pydbus import SystemBus
def get_drive_power_state(drive_path):
bus = SystemBus()
udisks = bus.get(".UDisks2")
drive_obj = bus.get("org.freedesktop.UDisks2", drive_path)
return None
drive_path = "/org/freedesktop/UDisks2/drives/WDC_WD20NMVW_11EDZS3_WD_WXV1EA57RT6E"
power_state = get_drive_power_state(drive_path)
print(f"Drive Power State: {power_state}")
1条答案
按热度按时间ws51t4hk1#
在DBus对象上调用方法时,需要指定该方法属于哪个DBus接口。
在本例中,
PmGetState
方法属于org.freedesktop.UDisks2.Drive.Ata
接口,因此这就是我们在方法调用中指定的接口。