# This file was generated by SquareLine Studio
# SquareLine Studio version: SquareLine Studio 1.3.0
# LVGL version: 8.3.6
# Project name: SquareLine_Project

import network
import gc
import urequests as r
import uasyncio
import lvgl as lv
import time

sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect('[SSID]', '[PASSWORD]')
time.sleep(5) 
url = "http://[PC-address]:8085/data.json"

sensors = {
"/gpu-nvidia/0/temperature/0": "gpu_temp",
"/nvme/2/temperature/0": "disk_temp",
"/intelcpu/0/temperature/0": "cpu_temp",
"/gpu-nvidia/0/smalldata/1": "gpu_mem_used_sensor",
"/lpc/nct6796dr/fan/5": "sys_fan_sensor",
"/gpu-nvidia/0/power/0": "gpu_package_sensor",
"/gpu-nvidia/0/smalldata/2": "gpu_mem_total_sensor",
"/lpc/nct6796dr/control/1": "cpu_fan_percent_sensor",
"/gpu-nvidia/0/clock/0": "gpu_hz_sensor",
"/gpu-nvidia/0/load/0": "gpu_load",
"/lpc/nct6796dr/fan/1": "cpu_fan_sensor",
"/lpc/nct6796dr/control/5": "sys_fan_percent_sensor",
"/gpu-nvidia/0/fan/1": "gpu_fan_sensor",
"/gpu-nvidia/0/control/0": "gpu_fan_percent_sensor",
"/intelcpu/0/load/0" : "cpu_load",
"/intelcpu/0/clock/1" : "cpu_clock",
"/ram/data/0" : "mem_used",
"/ram/data/1" : "mem_avail",
}

sensor_values = {
"cpu_temp":0,
"gpu_temp":0,
"disk_temp":0,
"gpu_mem_used_sensor": 0,
"sys_fan_sensor": 0,
"gpu_package_sensor": 0,
"gpu_mem_total_sensor": 0,
"cpu_fan_percent_sensor": 0,
"gpu_hz_sensor": 0,
"cpu_fan_sensor": 0,
"sys_fan_percent_sensor": 0,
"gpu_fan_sensor": 0,
"gpu_fan_percent_sensor": 0,
"cpu_load": 0,
"gpu_load": 0,
"mem_used": 0,
"mem_avail": 0,
"cpu_clock":0,
"pcname" : "",
"now": "00:00",
}


core_load = []

def get(t, k):
    try:
        return t[k]
    except:
        return ""


import re
numpat = re.compile("[0-9]+")
def num(s):
    m = numpat.match(s)
    if m:
        return int(m.group(0))
    else:
        return 0

def parse_headers(l, t):
    l = l.decode('utf-8')
    k, v = l.split(":", 1)
    if k == "Date":
        h = (int(v[-14:-12]) + 8) % 24
        m = int(v[-11:-9])
        sensor_values["now"] = "%02d:%02d" %(h,m)

def update_sensor(url):
    # reset
    core_load = []
    resp = r.get(url, parse_headers=parse_headers)
    last_part = ""
    # memory not enough to download all
    while True:
        data = ""
        gc.collect()
        time.sleep_ms(1)
        try:
            data = resp.raw.read(100).decode('utf-8')
        except:
            data = ""
        read_len = len(data)
        data = last_part + data
        data = data.replace("}", "{")
        data = data.replace('"', "")
        gc.collect()
        fields = data.split("{")
        if len(fields) == 1:
            if read_len != 0:
                last_part = fields[0]
                continue
        if len(fields) > 1:
            last_part = fields[-1]
            fields = fields[:-1]

        vals = {}
        for field in fields:
            for field2 in field.split(","):
                kv = field2.split(":")
                if len(kv) != 2:
                    continue
                if kv[0] == "ImageURL" or kv[0] == "SensorId" or kv[0] == "Value" or kv[0] == "Text":
                    vals[kv[0]] = kv[1]

        if get(vals, "ImageURL") == "images_icon/computer.png":
            sensor_values["pcname"] = get(vals, "Text")
            print("pcname", sensor_values["pcname"])

        if get(vals, "SensorId").startswith("/intelcpu/0/load/"):
            if get(vals, "SensorId") != "/intelcpu/0/load/0":
                core_load.append(num(get(vals, "Value")))
        if get(sensors, get(vals, "SensorId")) != "":
            sensor_values[get(sensors, get(vals, "SensorId"))] = num(get(vals, "Value"))
            print(get(sensors, get(vals, "SensorId")), get(vals, "Value"))
        vals = {}
        gc.collect()
        if read_len == 0:
            #the last part
            break


def update_ui():
    gc.collect()
    ui_Label1.set_text(sensor_values["pcname"])
    ui_Label2.set_text(sensor_values["now"])
    ui_Label6.set_text(str(sensor_values["mem_used"]) + "G/" + str(sensor_values["mem_used"] + sensor_values["mem_avail"]) + "G")
    ui_Label4.set_text(str(sensor_values["cpu_clock"]) + "Mhz")
    ui_Label5.set_text(str(sensor_values["cpu_load"]) + "%")
    ui_Label11.set_text(str(sensor_values["cpu_temp"]) + "°") 
    ui_Label13.set_text(str(sensor_values["disk_temp"]) + "°") 
    ui_Label12.set_text(str(sensor_values["gpu_temp"]) + "°")
    ui_Label15.set_text(str(sensor_values["gpu_hz_sensor"]) + "Mhz")
    ui_Label16.set_text(str(sensor_values["gpu_load"]) + "%")
    gpu_use_gb = sensor_values["gpu_mem_used_sensor"]/1024
    gpu_gb = sensor_values["gpu_mem_total_sensor"]/1024
    
    ui_Label17.set_text("%.1fG/%.0fG" % (gpu_use_gb, gpu_gb))
    
    ui_Label18.set_text(str(sensor_values["gpu_package_sensor"]) + "W")
    ui_Label19.set_text("")
    ui_Label24.set_text(str(sensor_values["sys_fan_sensor"]))
    ui_Label25.set_text(str(sensor_values["cpu_fan_sensor"]))
    ui_Label26.set_text(str(sensor_values["gpu_fan_sensor"]))
    
    # chart
    ui_Chart2.set_next_value(gpuser, sensor_values["gpu_load"])
    ui_Chart4.set_next_value(cpuser, sensor_values["cpu_load"])
    
    ui_Chart3.set_next_value(cputempser , sensor_values["cpu_temp"])
    ui_Chart3.set_next_value(gputempser , sensor_values["gpu_temp"])
    ui_Chart3.set_next_value(disktempser , sensor_values["disk_temp"])
    
    ui_Chart5.set_next_value(cpufanser , sensor_values["cpu_fan_percent_sensor"])
    ui_Chart5.set_next_value(gpufanser , sensor_values["gpu_fan_percent_sensor"])
    ui_Chart5.set_next_value(sysfanser , sensor_values["sys_fan_percent_sensor"])
    
    ui_Arc3.set_value(sensor_values["cpu_fan_percent_sensor"])
    ui_Arc1.set_value(sensor_values["gpu_fan_percent_sensor"])
    ui_Arc2.set_value(sensor_values["sys_fan_percent_sensor"])
    

def update(url):
    gc.collect()
    if sta_if.isconnected():
        try:
            update_sensor(url)
            update_ui()
        except Exception as e: print(e)
    time.sleep(1)


lv.init()
time.sleep(1)
from lv_utils import event_loop
event_loop = event_loop(freq=20)



dispp = lv.disp_get_default()
theme = lv.theme_basic_init(dispp)
dispp.set_theme(theme)

def SetFlag( obj, flag, value):
    if (value):
        obj.add_flag(flag)
    else:
        obj.clear_flag(flag)
    return

_ui_comp_table = {}
_ui_comp_prev = None
_ui_name_prev = None
_ui_child_prev = None
_ui_comp_table.clear()

def _ui_comp_del_event(e):
    target = e.get_target()
    _ui_comp_table[id(target)].remove()

def ui_comp_get_child(comp, child_name):
    return _ui_comp_table[id(comp)][child_name]

def ui_comp_get_root_from_child(child, compname):
    for component in _ui_comp_table:
        if _ui_comp_table[component]["_CompName"]==compname:
            for part in _ui_comp_table[component]:
                if id(_ui_comp_table[component][part]) == id(child):
                    return _ui_comp_table[component]
    return None
def SetBarProperty(target, id, val):
   if id == 'Value_with_anim': target.set_value(val, lv.ANIM.ON)
   if id == 'Value': target.set_value(val, lv.ANIM.OFF)
   return

def SetPanelProperty(target, id, val):
   if id == 'Position_X': target.set_x(val)
   if id == 'Position_Y': target.set_y(val)
   if id == 'Width': target.set_width(val)
   if id == 'Height': target.set_height(val)
   return

def SetDropdownProperty(target, id, val):
   if id == 'Selected':
      target.set_selected(val)
   return

def SetImageProperty(target, id, val, val2):
   if id == 'Image': target.set_src(val)
   if id == 'Angle': target.set_angle(val2)
   if id == 'Zoom': target.set_zoom(val2)
   return

def SetLabelProperty(target, id, val):
   if id == 'Text': target.set_text(val)
   return

def SetRollerProperty(target, id, val):
   if id == 'Selected':
      target.set_selected(val, lv.ANIM.OFF)
   if id == 'Selected_with_anim':
      target.set_selected(val, lv.ANIM.ON)
   return

def SetSliderProperty(target, id, val):
   if id == 'Value_with_anim': target.set_value(val, lv.ANIM.ON)
   if id == 'Value': target.set_value(val, lv.ANIM.OFF)
   return

def ChangeScreen( src, fademode, speed, delay):
    lv.scr_load_anim(src, fademode, speed, delay, False)
    return

def IncrementArc( trg, val):
    trg.set_value(trg.get_value()+val)
    lv.event_send(trg,lv.EVENT.VALUE_CHANGED, None)
    return

def IncrementBar( trg, val, anim):
    trg.set_value(trg.get_value()+val,anim)
    return

def IncrementSlider( trg, val, anim):
    trg.set_value(trg.get_value()+val,anim)
    lv.event_send(trg,lv.EVENT.VALUE_CHANGED, None)
    return

def KeyboardSetTarget( keyboard, textarea):
    keyboard.set_textarea(textarea)
    return

def ModifyFlag( obj, flag, value):
    if (value=="TOGGLE"):
        if ( obj.has_flag(flag) ):
            obj.clear_flag(flag)
        else:
            obj.add_flag(flag)
        return

    if (value=="ADD"):
        obj.add_flag(flag)
    else:
        obj.clear_flag(flag)
    return

def ModifyState( obj, state, value):
    if (value=="TOGGLE"):
        if ( obj.has_state(state) ):
            obj.clear_state(state)
        else:
            obj.add_state(state)
        return

    if (value=="ADD"):
        obj.add_state(state)
    else:
        obj.clear_state(state)
    return

def set_opacity(obj, v):
    obj.set_style_opa(v, lv.STATE.DEFAULT|lv.PART.MAIN)
    return

def SetTextValueArc( trg, src, prefix, postfix):
    trg.set_text(prefix+str(src.get_value())+postfix)
    return

def SetTextValueSlider( trg, src, prefix, postfix):
    trg.set_text(prefix+str(src.get_value())+postfix)
    return

def SetTextValueChecked( trg, src, txton, txtoff):
    if src.has_state(lv.STATE.CHECKED):
        trg.set_text(txton)
    else:
        trg.set_text(txtoff)
    return

# COMPONENTS

 # COMPONENT Arc2
def ui_Arc2_create(comp_parent):
    cui_Arc2 = lv.arc(comp_parent)
    cui_Arc2.set_width(55)
    cui_Arc2.set_height(54)
    cui_Arc2.set_x(10)
    cui_Arc2.set_y(168)
    cui_Arc2.set_align( lv.ALIGN.CENTER)
    cui_Arc2.set_style_arc_color( lv.color_hex( 0x868686 ), lv.PART.MAIN | lv.STATE.DEFAULT )
    cui_Arc2.set_style_arc_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )
    cui_Arc2.set_style_arc_color( lv.color_hex( 0x9CC8A2 ), lv.PART.INDICATOR | lv.STATE.DEFAULT )
    cui_Arc2.set_style_arc_opa( 255, lv.PART.INDICATOR| lv.STATE.DEFAULT )
    cui_Arc2.set_style_bg_color( lv.color_hex( 0xFFFFFF ), lv.PART.KNOB | lv.STATE.DEFAULT )
    cui_Arc2.set_style_bg_opa( 0, lv.PART.KNOB| lv.STATE.DEFAULT )
    _ui_comp_table[id(cui_Arc2)]= {"Arc2" : cui_Arc2, "_CompName" : "Arc2"}
    return cui_Arc2

 # COMPONENT Chart2
def ui_Chart2_create(comp_parent):
    cui_Chart2 = lv.chart(comp_parent)
    cui_Chart2.set_width(120)
    cui_Chart2.set_height(80)
    cui_Chart2.set_x(10)
    cui_Chart2.set_y(30)
    cui_Chart2.set_type(lv.chart.TYPE.LINE)
    cui_Chart2.set_div_line_count(0, 0)
    cui_Chart2.set_axis_tick(lv.chart.AXIS.PRIMARY_X, 0, 0, 5, 2, False, 50)
    cui_Chart2.set_axis_tick(lv.chart.AXIS.PRIMARY_Y, 0, 0, 5, 2, False, 50)
    cui_Chart2.set_axis_tick(lv.chart.AXIS.SECONDARY_Y, 0, 0, 5, 2, False, 25)
    cui_Chart2.set_style_bg_color( lv.color_hex( 0xFFFFFF ), lv.PART.MAIN | lv.STATE.DEFAULT )
    cui_Chart2.set_style_bg_opa( 0, lv.PART.MAIN| lv.STATE.DEFAULT )
    cui_Chart2.set_style_border_color( lv.color_hex( 0xCCCCCC ), lv.PART.MAIN | lv.STATE.DEFAULT )
    cui_Chart2.set_style_border_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )
    cui_Chart2.set_style_border_width( 1, lv.PART.MAIN | lv.STATE.DEFAULT )
    _ui_comp_table[id(cui_Chart2)]= {"Chart2" : cui_Chart2, "_CompName" : "Chart2"}
    return cui_Chart2

ui____initial_actions0 = lv.obj()

ui_Screen1 = lv.obj()
SetFlag(ui_Screen1, lv.obj.FLAG.SCROLLABLE, False)
ui_Screen1.set_style_bg_color( lv.color_hex( 0x000000 ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Screen1.set_style_bg_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )
ui_Screen1.set_style_text_color( lv.color_hex( 0xFFFFFF ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Screen1.set_style_text_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Panel2 = lv.obj(ui_Screen1)
ui_Panel2.set_width(320)
ui_Panel2.set_height(20)
SetFlag(ui_Panel2, lv.obj.FLAG.SCROLLABLE, False)
ui_Panel2.set_style_bg_color( lv.color_hex( 0x262626 ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Panel2.set_style_bg_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Label1 = lv.label(ui_Screen1)
ui_Label1.set_text("ADMIN-PC")
ui_Label1.set_width(lv.SIZE_CONTENT)	# 1
ui_Label1.set_height(lv.SIZE_CONTENT)   # 1
ui_Label1.set_x(10)
ui_Label1.set_y(2)

ui_Label2 = lv.label(ui_Screen1)
ui_Label2.set_text("17:00")
ui_Label2.set_width(lv.SIZE_CONTENT)	# 1
ui_Label2.set_height(lv.SIZE_CONTENT)   # 1
ui_Label2.set_x(-5)
ui_Label2.set_y(2)
ui_Label2.set_align( lv.ALIGN.TOP_RIGHT)

ui_Chart2 = ui_Chart2_create(ui_Screen1)
ui_Chart2.set_x(10)
ui_Chart2.set_y(240)
gpuser = ui_Chart2.add_series(lv.color_hex(0xFFA2A2), lv.chart.AXIS.PRIMARY_Y)

ui_Chart3 = ui_Chart2_create(ui_Screen1)
ui_Chart3.set_x(10)
ui_Chart3.set_y(135)
cputempser = ui_Chart3.add_series(lv.color_hex(0xFF747D), lv.chart.AXIS.PRIMARY_Y)
gputempser = ui_Chart3.add_series(lv.color_hex(0xA1FFDA), lv.chart.AXIS.PRIMARY_Y)
disktempser = ui_Chart3.add_series(lv.color_hex(0xFFFEA3), lv.chart.AXIS.PRIMARY_Y)


ui_Chart4 = ui_Chart2_create(ui_Screen1)
ui_Chart4.set_x(10)
ui_Chart4.set_y(35)
cpuser = ui_Chart4.add_series(lv.color_hex(0xBBE8FF), lv.chart.AXIS.PRIMARY_Y)

ui_Chart5 = ui_Chart2_create(ui_Screen1)
ui_Chart5.set_x(10)
ui_Chart5.set_y(345)
cpufanser = ui_Chart5.add_series(lv.color_hex(0xC68989), lv.chart.AXIS.PRIMARY_Y)
gpufanser = ui_Chart5.add_series(lv.color_hex(0xCCD597), lv.chart.AXIS.PRIMARY_Y)
sysfanser = ui_Chart5.add_series(lv.color_hex(0x9CC8A2), lv.chart.AXIS.PRIMARY_Y)

ui_Label3 = lv.label(ui_Screen1)
ui_Label3.set_text("i5-12490F")
ui_Label3.set_width(lv.SIZE_CONTENT)	# 1
ui_Label3.set_height(lv.SIZE_CONTENT)   # 1
ui_Label3.set_x(18)
ui_Label3.set_y(-194)
ui_Label3.set_align( lv.ALIGN.CENTER)

ui_Label4 = lv.label(ui_Screen1)
ui_Label4.set_text("3.5Ghz")
ui_Label4.set_width(lv.SIZE_CONTENT)	# 1
ui_Label4.set_height(lv.SIZE_CONTENT)   # 1
ui_Label4.set_x(125)
ui_Label4.set_y(-196)
ui_Label4.set_align( lv.ALIGN.CENTER)

ui_Label5 = lv.label(ui_Screen1)
ui_Label5.set_text("100%")
ui_Label5.set_width(lv.SIZE_CONTENT)	# 1
ui_Label5.set_height(lv.SIZE_CONTENT)   # 1
ui_Label5.set_x(22)
ui_Label5.set_y(-166)
ui_Label5.set_align( lv.ALIGN.CENTER)
ui_Label5.set_style_text_font( lv.font_montserrat_30, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label6 = lv.label(ui_Screen1)
ui_Label6.set_text("20G/128G")
ui_Label6.set_width(lv.SIZE_CONTENT)	# 1
ui_Label6.set_height(lv.SIZE_CONTENT)   # 1
ui_Label6.set_x(17)
ui_Label6.set_y(-136)
ui_Label6.set_align( lv.ALIGN.CENTER)

ui_Chart1 = lv.chart(ui_Screen1)
ui_Chart1.set_width(53)
ui_Chart1.set_height(41)
ui_Chart1.set_x(123)
ui_Chart1.set_y(-159)
ui_Chart1.set_align( lv.ALIGN.CENTER)
ui_Chart1.set_type(lv.chart.TYPE.LINE)
ui_Chart1.set_div_line_count(5, 5)
ui_Chart1.set_axis_tick(lv.chart.AXIS.PRIMARY_X, 0, 0, 5, 2, False, 50)
ui_Chart1.set_axis_tick(lv.chart.AXIS.PRIMARY_Y, 0, 0, 5, 2, False, 50)
ui_Chart1.set_axis_tick(lv.chart.AXIS.SECONDARY_Y, 0, 0, 5, 2, False, 25)
ui_Chart1.set_style_bg_color( lv.color_hex( 0xFFFFFF ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Chart1.set_style_bg_opa( 0, lv.PART.MAIN| lv.STATE.DEFAULT )
ui_Chart1.set_style_border_color( lv.color_hex( 0x848484 ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Chart1.set_style_border_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )
ui_Chart1.set_style_border_width( 1, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label7 = lv.label(ui_Screen1)
ui_Label7.set_text("Tempture")
ui_Label7.set_width(lv.SIZE_CONTENT)	# 1
ui_Label7.set_height(lv.SIZE_CONTENT)   # 1
ui_Label7.set_x(19)
ui_Label7.set_y(-92)
ui_Label7.set_align( lv.ALIGN.CENTER)

ui_Label8 = lv.label(ui_Screen1)
ui_Label8.set_text("CPU")
ui_Label8.set_width(lv.SIZE_CONTENT)	# 1
ui_Label8.set_height(lv.SIZE_CONTENT)   # 1
ui_Label8.set_x(-2)
ui_Label8.set_y(-68)
ui_Label8.set_align( lv.ALIGN.CENTER)
ui_Label8.set_style_text_color( lv.color_hex( 0xFF747D ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Label8.set_style_text_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Label9 = lv.label(ui_Screen1)
ui_Label9.set_text("DISK")
ui_Label9.set_width(lv.SIZE_CONTENT)	# 1
ui_Label9.set_height(lv.SIZE_CONTENT)   # 1
ui_Label9.set_x(119)
ui_Label9.set_y(-67)
ui_Label9.set_align( lv.ALIGN.CENTER)
ui_Label9.set_style_text_color( lv.color_hex( 0xFFFEA3 ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Label9.set_style_text_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Label10 = lv.label(ui_Screen1)
ui_Label10.set_text("GPU")
ui_Label10.set_width(lv.SIZE_CONTENT)	# 1
ui_Label10.set_height(lv.SIZE_CONTENT)   # 1
ui_Label10.set_x(58)
ui_Label10.set_y(-68)
ui_Label10.set_align( lv.ALIGN.CENTER)
ui_Label10.set_style_text_color( lv.color_hex( 0xA1FFDA ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Label10.set_style_text_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Label11 = lv.label(ui_Screen1)
ui_Label11.set_text("60°")
ui_Label11.set_width(lv.SIZE_CONTENT)	# 1
ui_Label11.set_height(lv.SIZE_CONTENT)   # 1
ui_Label11.set_x(4)
ui_Label11.set_y(-40)
ui_Label11.set_align( lv.ALIGN.CENTER)
ui_Label11.set_style_text_font( lv.font_montserrat_30, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label12 = lv.label(ui_Screen1)
ui_Label12.set_text("70°")
ui_Label12.set_width(lv.SIZE_CONTENT)	# 1
ui_Label12.set_height(lv.SIZE_CONTENT)   # 1
ui_Label12.set_x(66)
ui_Label12.set_y(-39)
ui_Label12.set_align( lv.ALIGN.CENTER)
ui_Label12.set_style_text_font( lv.font_montserrat_30, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label13 = lv.label(ui_Screen1)
ui_Label13.set_text("50°")
ui_Label13.set_width(lv.SIZE_CONTENT)	# 1
ui_Label13.set_height(lv.SIZE_CONTENT)   # 1
ui_Label13.set_x(129)
ui_Label13.set_y(-39)
ui_Label13.set_align( lv.ALIGN.CENTER)
ui_Label13.set_style_text_font( lv.font_montserrat_30, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label14 = lv.label(ui_Screen1)
ui_Label14.set_text("NVIDIA GeForce GTX 1070")
ui_Label14.set_width(lv.SIZE_CONTENT)	# 1
ui_Label14.set_height(lv.SIZE_CONTENT)   # 1
ui_Label14.set_x(42)
ui_Label14.set_y(8)
ui_Label14.set_align( lv.ALIGN.CENTER)
ui_Label14.set_style_text_font( lv.font_montserrat_10, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label15 = lv.label(ui_Screen1)
ui_Label15.set_text("2200Mhz")
ui_Label15.set_width(lv.SIZE_CONTENT)	# 1
ui_Label15.set_height(lv.SIZE_CONTENT)   # 1
ui_Label15.set_x(122)
ui_Label15.set_y(28)
ui_Label15.set_align( lv.ALIGN.CENTER)

ui_Label16 = lv.label(ui_Screen1)
ui_Label16.set_text("100%")
ui_Label16.set_width(lv.SIZE_CONTENT)	# 1
ui_Label16.set_height(lv.SIZE_CONTENT)   # 1
ui_Label16.set_x(23)
ui_Label16.set_y(37)
ui_Label16.set_align( lv.ALIGN.CENTER)
ui_Label16.set_style_text_font( lv.font_montserrat_30, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label17 = lv.label(ui_Screen1)
ui_Label17.set_text("4G/8G")
ui_Label17.set_width(lv.SIZE_CONTENT)	# 1
ui_Label17.set_height(lv.SIZE_CONTENT)   # 1
ui_Label17.set_x(13)
ui_Label17.set_y(71)
ui_Label17.set_align( lv.ALIGN.CENTER)

ui_Label18 = lv.label(ui_Screen1)
ui_Label18.set_text("213W")
ui_Label18.set_width(lv.SIZE_CONTENT)	# 1
ui_Label18.set_height(lv.SIZE_CONTENT)   # 1
ui_Label18.set_x(136)
ui_Label18.set_y(49)
ui_Label18.set_align( lv.ALIGN.CENTER)

ui_Label19 = lv.label(ui_Screen1)
ui_Label19.set_text("1200RPM")
ui_Label19.set_width(lv.SIZE_CONTENT)	# 1
ui_Label19.set_height(lv.SIZE_CONTENT)   # 1
ui_Label19.set_x(123)
ui_Label19.set_y(73)
ui_Label19.set_align( lv.ALIGN.CENTER)

ui_Label20 = lv.label(ui_Screen1)
ui_Label20.set_text("Fans")
ui_Label20.set_width(lv.SIZE_CONTENT)	# 1
ui_Label20.set_height(lv.SIZE_CONTENT)   # 1
ui_Label20.set_x(0)
ui_Label20.set_y(110)
ui_Label20.set_align( lv.ALIGN.CENTER)

ui_Label21 = lv.label(ui_Screen1)
ui_Label21.set_text("SYS")
ui_Label21.set_width(lv.SIZE_CONTENT)	# 1
ui_Label21.set_height(lv.SIZE_CONTENT)   # 1
ui_Label21.set_x(9)
ui_Label21.set_y(127)
ui_Label21.set_align( lv.ALIGN.CENTER)

ui_Label22 = lv.label(ui_Screen1)
ui_Label22.set_text("CPU")
ui_Label22.set_width(lv.SIZE_CONTENT)	# 1
ui_Label22.set_height(lv.SIZE_CONTENT)   # 1
ui_Label22.set_x(67)
ui_Label22.set_y(128)
ui_Label22.set_align( lv.ALIGN.CENTER)

ui_Label23 = lv.label(ui_Screen1)
ui_Label23.set_text("GPU")
ui_Label23.set_width(lv.SIZE_CONTENT)	# 1
ui_Label23.set_height(lv.SIZE_CONTENT)   # 1
ui_Label23.set_x(130)
ui_Label23.set_y(128)
ui_Label23.set_align( lv.ALIGN.CENTER)

ui_Arc2 = ui_Arc2_create(ui_Screen1)
ui_Arc2.set_x(10)
ui_Arc2.set_y(168)

ui_Label24 = lv.label(ui_Screen1)
ui_Label24.set_text("2000")
ui_Label24.set_width(lv.SIZE_CONTENT)	# 1
ui_Label24.set_height(lv.SIZE_CONTENT)   # 1
ui_Label24.set_x(10)
ui_Label24.set_y(165)
ui_Label24.set_align( lv.ALIGN.CENTER)
ui_Label24.set_style_text_font( lv.font_montserrat_10, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Arc3 = ui_Arc2_create(ui_Screen1)
ui_Arc3.set_x(69)
ui_Arc3.set_y(167)

ui_Arc3.set_style_arc_color( lv.color_hex( 0xC68989 ), lv.PART.INDICATOR | lv.STATE.DEFAULT )
ui_Arc3.set_style_arc_opa( 255, lv.PART.INDICATOR| lv.STATE.DEFAULT )

ui_Arc1 = lv.arc(ui_Screen1)
ui_Arc1.set_width(55)
ui_Arc1.set_height(54)
ui_Arc1.set_x(131)
ui_Arc1.set_y(168)
ui_Arc1.set_align( lv.ALIGN.CENTER)
ui_Arc1.set_style_arc_color( lv.color_hex( 0x868686 ), lv.PART.MAIN | lv.STATE.DEFAULT )
ui_Arc1.set_style_arc_opa( 255, lv.PART.MAIN| lv.STATE.DEFAULT )

ui_Arc1.set_style_arc_color( lv.color_hex( 0xCCD597 ), lv.PART.INDICATOR | lv.STATE.DEFAULT )
ui_Arc1.set_style_arc_opa( 255, lv.PART.INDICATOR| lv.STATE.DEFAULT )

ui_Arc1.set_style_bg_color( lv.color_hex( 0xFFFFFF ), lv.PART.KNOB | lv.STATE.DEFAULT )
ui_Arc1.set_style_bg_opa( 0, lv.PART.KNOB| lv.STATE.DEFAULT )

ui_Label25 = lv.label(ui_Screen1)
ui_Label25.set_text("1500")
ui_Label25.set_width(lv.SIZE_CONTENT)	# 1
ui_Label25.set_height(lv.SIZE_CONTENT)   # 1
ui_Label25.set_x(70)
ui_Label25.set_y(165)
ui_Label25.set_align( lv.ALIGN.CENTER)
ui_Label25.set_style_text_font( lv.font_montserrat_10, lv.PART.MAIN | lv.STATE.DEFAULT )

ui_Label26 = lv.label(ui_Screen1)
ui_Label26.set_text("3500")
ui_Label26.set_width(lv.SIZE_CONTENT)	# 1
ui_Label26.set_height(lv.SIZE_CONTENT)   # 1
ui_Label26.set_x(130)
ui_Label26.set_y(165)
ui_Label26.set_align( lv.ALIGN.CENTER)
ui_Label26.set_style_text_font( lv.font_montserrat_10, lv.PART.MAIN | lv.STATE.DEFAULT )

lv.scr_load(ui_Screen1)

while True:
    update(url)
