arch(driver): new driver architecture with new color format support

This commit is contained in:
Gabor Kiss-Vamosi
2023-02-20 20:50:58 +01:00
parent df789ed3c7
commit 124f9b0f9f
425 changed files with 25232 additions and 24168 deletions

View File

@@ -12,7 +12,7 @@ class NewValue:
def __repr__(self):
return f"{self.value} %"
class LV_Example_Msg_2:
def __init__(self):
self.value = 10
lv.msg_subscribe(MSG_INC, self.value_handler, None)
@@ -30,39 +30,39 @@ class LV_Example_Msg_2:
# Up button
btn = lv.btn(panel)
btn.set_flex_grow(1)
btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None)
btn.add_event(self.btn_event_cb, lv.EVENT.ALL, None)
label = lv.label(btn)
label.set_text(lv.SYMBOL.LEFT)
label.center()
# Current value
label = lv.label(panel)
label.set_flex_grow(2)
label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
label.set_text("?")
lv.msg_subscribe_obj(MSG_UPDATE, label, None)
label.add_event_cb(self.label_event_cb, lv.EVENT.MSG_RECEIVED, None)
label.add_event(self.label_event_cb, lv.EVENT.MSG_RECEIVED, None)
# Down button
btn = lv.btn(panel)
btn.set_flex_grow(1)
btn.add_event_cb(self.btn_event_cb, lv.EVENT.ALL, None)
btn.add_event(self.btn_event_cb, lv.EVENT.ALL, None)
label = lv.label(btn)
label.set_text(lv.SYMBOL.RIGHT)
label.center()
# Slider
slider = lv.slider(panel)
slider.set_flex_grow(1)
slider.add_flag(lv.OBJ_FLAG_FLEX_IN_NEW_TRACK)
slider.add_event_cb(self.slider_event_cb, lv.EVENT.ALL, None)
slider.add_event(self.slider_event_cb, lv.EVENT.ALL, None)
lv.msg_subscribe_obj(MSG_UPDATE, slider, None)
# As there are new UI elements that don't know the system's state
# send an UPDATE REQUEST message which will trigger an UPDATE message with the current value
lv.msg_send(MSG_UPDATE_REQUEST, None)
def value_handler(self,m):
old_value = self.value
id = m.get_id()
@@ -76,15 +76,15 @@ class LV_Example_Msg_2:
payload = m.get_payload()
new_value=payload.__cast__()
self.value = new_value.value
# print("value_handler: new value: {:d}".format(new_value.value))
# print("value_handler: new value: {:d}".format(new_value.value))
elif id == MSG_UPDATE_REQUEST:
lv.msg_send(MSG_UPDATE, NewValue(self.value))
if self.value != old_value:
if self.value != old_value:
lv.msg_send(MSG_UPDATE, NewValue(self.value));
def btn_event_cb(self,e):
btn = e.get_target()
btn = e.get_target_obj()
code = e.get_code()
if code == lv.EVENT.CLICKED or code == lv.EVENT.LONG_PRESSED_REPEAT:
if btn.get_index() == 0: # rst object is the dec. button
@@ -93,7 +93,7 @@ class LV_Example_Msg_2:
lv.msg_send(MSG_INC, None)
def label_event_cb(self,e):
label = e.get_target()
label = e.get_target_obj()
code = e.get_code()
if code == lv.EVENT.MSG_RECEIVED:
m = e.get_msg()
@@ -104,13 +104,13 @@ class LV_Example_Msg_2:
label.set_text(str(value))
def slider_event_cb(self,e):
slider = e.get_target()
slider = e.get_target_obj()
code = e.get_code()
if code == lv.EVENT.VALUE_CHANGED:
v = slider.get_value()
# print("slider_event_cb: {:d}".format(v))
lv.msg_send(MSG_SET, NewValue(v))
elif code == lv.EVENT.MSG_RECEIVED:
m = e.get_msg()
if m.get_id() == MSG_UPDATE: