aboutsummaryrefslogtreecommitdiff
path: root/util/raw.py
blob: fe63d4902f5d6d64140eca4794c42161a667ce45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Copyright 2025 [email protected]
# SPDX-License-Identifier: GPL-2.0-or-later
import hid
import sys
import psutil
import math
import time
import datetime

vendor_id = 0x6A73
product_id = 0x6B62
usage_page = 0xFF60
usage = 0x61


def get_raw_hid_interface():
    device_interfaces = hid.enumerate(vendor_id, product_id)
    raw_hid_interfaces = [
        i
        for i in device_interfaces
        if i["usage_page"] == usage_page and i["usage"] == usage
    ]
    if len(raw_hid_interfaces) == 0:
        return None
    interface = hid.Device(path=raw_hid_interfaces[0]["path"])
    return interface


def send_packet(data):
    interface = get_raw_hid_interface()
    if interface is None:
        print("no device found")
        sys.exit(1)
    request_data = [0x00] * 32
    request_data[1 : len(data) + 1] = data
    request_packet = bytes(request_data)
    try:
        interface.write(request_packet)
    finally:
        interface.close()


if __name__ == "__main__":
    while True:
        time.sleep(30)
        cpu_temp = psutil.sensors_temperatures()["gigabyte_wmi"][2]
        cur_hour = datetime.datetime.now().strftime("%H")
        cur_minute = datetime.datetime.now().strftime("%M")
        send_packet([math.trunc(cpu_temp.current), int(cur_hour), int(cur_minute)])