aboutsummaryrefslogtreecommitdiff
path: root/sysmon_windows.py
blob: 1421d087b5be6ec8cdab89678b066d3453a8732c (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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/python

import sys
from datetime import datetime
from datetime import timedelta
import psutil
import serial
from time import sleep
import math
import platform
import clr
clr.AddReference(r'OpenHardwareMonitorLib')
from OpenHardwareMonitor import Hardware

file_descriptor = 'COM5'
baud_rate = 9600

arduino = serial.Serial(port=file_descriptor, baudrate=baud_rate)
sleep(6)

def send_command(command):
    print("sent: " + command)
    arduino.write(command.encode())
    sleep(0.1)

def set_time(date_time):
    curr_time=date_time.strftime('%H:%M:%S')
    return curr_time


def set_max():
    ram_max = int(psutil.virtual_memory().total / (1024.*1024.))
    return ram_max

def set_free():
    ram_free = int(psutil.virtual_memory().free / (1024.*1024.))
    return ram_free

def set_OS():
    OSName = platform.uname()[0]
    return OSName

def set_kernel_version():
    Kernel = platform.uname().version
    return Kernel

def set_uptime():
    uptime_seconds = psutil.boot_time()
    uptime = datetime.now() - datetime.fromtimestamp(uptime_seconds)
    uptime_hours = int(uptime.total_seconds() // 3600)
    uptime_minutes = int((uptime.total_seconds() % 3600) // 60)
    uptime = f"{uptime_hours:02d}:{uptime_minutes:02d}"
    return uptime

def get_cpu_temperature():
    computer = Hardware.Computer()
    computer.Open()
    computer.CPUEnabled = True
    
    for hardware in computer.Hardware:
        if hardware.HardwareType == Hardware.HardwareType.CPU:
            hardware.Update()
            for sensor in hardware.Sensors:
                if sensor.SensorType == Hardware.SensorType.Temperature and sensor.Name == "CPU Package":
                    return sensor.Value

def start():
    while 1:
        cpu_temp = get_cpu_temperature()
        cpu_pct = psutil.cpu_percent(interval=None, percpu=False)
        cpu_global = int(cpu_pct)
        request = "\nCpuTemp="+str(cpu_temp)+",CpuUsage="+str(math.trunc(cpu_global))+",RamMax="+str(set_max())+",RamFree="+str(set_free())+",Time="+str(set_time(datetime.now()))+",OS="+str(set_OS())+",Kernel="+str(set_kernel_version())+",Uptime="+str(set_uptime())
        send_command(request)
        sleep(2)


def main():
    start()

if __name__ == "__main__":
    main()