ci(exmpple): update meter MicrpPython examples
This commit is contained in:
@@ -13,35 +13,30 @@ meter = lv.meter(lv.scr_act())
|
||||
meter.center()
|
||||
meter.set_size(200, 200)
|
||||
|
||||
# Add a scale first
|
||||
scale = meter.add_scale()
|
||||
meter.set_scale_ticks(scale, 51, 2, 10, lv.palette_main(lv.PALETTE.GREY))
|
||||
meter.set_scale_major_ticks(scale, 10, 4, 15, lv.color_black(), 10)
|
||||
|
||||
indic = lv.meter_indicator_t()
|
||||
|
||||
# Add a blue arc to the start
|
||||
indic = meter.add_arc(scale, 3, lv.palette_main(lv.PALETTE.BLUE), 0)
|
||||
indic = meter.add_arc(3, lv.palette_main(lv.PALETTE.BLUE), 0)
|
||||
meter.set_indicator_start_value(indic, 0)
|
||||
meter.set_indicator_end_value(indic, 20)
|
||||
|
||||
# Make the tick lines blue at the start of the scale
|
||||
indic = meter.add_scale_lines(scale, lv.palette_main(lv.PALETTE.BLUE), lv.palette_main(lv.PALETTE.BLUE), False, 0)
|
||||
indic = meter.add_scale_lines(lv.palette_main(lv.PALETTE.BLUE), lv.palette_main(lv.PALETTE.BLUE), False, 0)
|
||||
meter.set_indicator_start_value(indic, 0)
|
||||
meter.set_indicator_end_value(indic, 20)
|
||||
|
||||
# Add a red arc to the end
|
||||
indic = meter.add_arc(scale, 3, lv.palette_main(lv.PALETTE.RED), 0)
|
||||
indic = meter.add_arc(3, lv.palette_main(lv.PALETTE.RED), 0)
|
||||
meter.set_indicator_start_value(indic, 80)
|
||||
meter.set_indicator_end_value(indic, 100)
|
||||
|
||||
# Make the tick lines red at the end of the scale
|
||||
indic = meter.add_scale_lines(scale, lv.palette_main(lv.PALETTE.RED), lv.palette_main(lv.PALETTE.RED), False, 0)
|
||||
indic = meter.add_scale_lines(lv.palette_main(lv.PALETTE.RED), lv.palette_main(lv.PALETTE.RED), False, 0)
|
||||
meter.set_indicator_start_value(indic, 80)
|
||||
meter.set_indicator_end_value(indic, 100)
|
||||
|
||||
# Add a needle line indicator
|
||||
indic = meter.add_needle_line(scale, 4, lv.palette_main(lv.PALETTE.GREY), -10)
|
||||
indic = meter.add_needle_line(4, lv.palette_main(lv.PALETTE.GREY), -10)
|
||||
|
||||
# Create an animation to set the value
|
||||
a = lv.anim_t()
|
||||
|
||||
@@ -17,16 +17,15 @@ meter.set_size(200, 200)
|
||||
# Remove the circle from the middle
|
||||
meter.remove_style(None, lv.PART.INDICATOR)
|
||||
|
||||
# Add a scale first
|
||||
scale = meter.add_scale()
|
||||
meter.set_scale_ticks(scale, 11, 2, 10, lv.palette_main(lv.PALETTE.GREY))
|
||||
meter.set_scale_major_ticks(scale, 1, 2, 30, lv.color_hex3(0xeee), 10)
|
||||
meter.set_scale_range(scale, 0, 100, 270, 90)
|
||||
# Scale settings
|
||||
meter.set_scale_ticks(11, 2, 10, lv.palette_main(lv.PALETTE.GREY))
|
||||
meter.set_scale_major_ticks(1, 2, 30, lv.color_hex3(0xeee), 10)
|
||||
meter.set_scale_range(0, 100, 270, 90)
|
||||
|
||||
# Add a three arc indicator
|
||||
indic1 = meter.add_arc(scale, 10, lv.palette_main(lv.PALETTE.RED), 0)
|
||||
indic2 = meter.add_arc(scale, 10, lv.palette_main(lv.PALETTE.GREEN), -10)
|
||||
indic3 = meter.add_arc(scale, 10, lv.palette_main(lv.PALETTE.BLUE), -20)
|
||||
indic1 = meter.add_arc(10, lv.palette_main(lv.PALETTE.RED), 0)
|
||||
indic2 = meter.add_arc(10, lv.palette_main(lv.PALETTE.GREEN), -10)
|
||||
indic3 = meter.add_arc(10, lv.palette_main(lv.PALETTE.BLUE), -20)
|
||||
|
||||
# Create an animation to set the value
|
||||
a1 = lv.anim_t()
|
||||
|
||||
@@ -35,28 +35,39 @@ def set_value(indic, v):
|
||||
# A clock from a meter
|
||||
#
|
||||
|
||||
def tick_label_event(e):
|
||||
draw_part_dsc = e.get_draw_part_dsc();
|
||||
|
||||
# Be sure it's drawing the ticks
|
||||
if draw_part_dsc.type != lv.meter.DRAW_PART.TICK: return
|
||||
|
||||
# Be sure it's a major ticks
|
||||
if draw_part_dsc.id % 5: return
|
||||
|
||||
# The order of numbers on the clock is tricky: 12, 1, 2, 3...*/
|
||||
txt = ["12", "1", "2as", "3", "4", "5", "6", "7", "8", "9", "10", "11"]
|
||||
# dsc.text is defined char text[16], I must therefore convert the Python string to a byte_array
|
||||
|
||||
idx = int(draw_part_dsc.id / 5)
|
||||
draw_part_dsc.text = bytes(txt[idx],"ascii")
|
||||
|
||||
meter = lv.meter(lv.scr_act())
|
||||
meter.set_size(220, 220)
|
||||
meter.center()
|
||||
|
||||
# Create a scale for the minutes
|
||||
# 61 ticks in a 360 degrees range (the last and the first line overlaps)
|
||||
scale_min = meter.add_scale()
|
||||
meter.set_scale_ticks(scale_min, 61, 1, 10, lv.palette_main(lv.PALETTE.GREY))
|
||||
meter.set_scale_range(scale_min, 0, 60, 360, 270)
|
||||
|
||||
# Create another scale for the hours. It's only visual and contains only major ticks
|
||||
scale_hour = meter.add_scale()
|
||||
meter.set_scale_ticks(scale_hour, 12, 0, 0, lv.palette_main(lv.PALETTE.GREY)) # 12 ticks
|
||||
meter.set_scale_major_ticks(scale_hour, 1, 2, 20, lv.color_black(), 10) # Every tick is major
|
||||
meter.set_scale_range(scale_hour, 1, 12, 330, 300) # [1..12] values in an almost full circle
|
||||
|
||||
# LV_IMG_DECLARE(img_hand)
|
||||
# 60 ticks in a 354 degrees range
|
||||
meter.set_scale_ticks(60, 1, 10, lv.palette_main(lv.PALETTE.GREY))
|
||||
meter.set_scale_major_ticks(5, 2, 20, lv.color_black(), 10) # Every tick is major
|
||||
meter.set_scale_range(0, 59, 354, 270)
|
||||
|
||||
# Add the hands from images
|
||||
indic_min = meter.add_needle_img(scale_min, img_hand_min_dsc, 5, 5)
|
||||
indic_hour = meter.add_needle_img(scale_min, img_hand_hour_dsc, 5, 5)
|
||||
|
||||
#Add an event to set the numbers of hours
|
||||
meter.add_event_cb(tick_label_event, lv.EVENT.DRAW_PART_BEGIN, None)
|
||||
|
||||
# Create an animation to set the value
|
||||
a1 = lv.anim_t()
|
||||
a1.init()
|
||||
|
||||
@@ -12,21 +12,20 @@ meter.set_size(200, 200)
|
||||
meter.center()
|
||||
|
||||
# Add a scale first with no ticks.
|
||||
scale = meter.add_scale()
|
||||
meter.set_scale_ticks(scale, 0, 0, 0, lv.color_black())
|
||||
meter.set_scale_range(scale, 0, 100, 360, 0)
|
||||
meter.set_scale_ticks( 0, 0, 0, lv.color_black())
|
||||
meter.set_scale_range(0, 100, 360, 0)
|
||||
|
||||
# Add a three arc indicator*
|
||||
indic_w = 100
|
||||
indic1 = meter.add_arc(scale, indic_w,lv.palette_main(lv.PALETTE.ORANGE), 0)
|
||||
indic1 = meter.add_arc(indic_w,lv.palette_main(lv.PALETTE.ORANGE), 0)
|
||||
meter.set_indicator_start_value(indic1, 0)
|
||||
meter.set_indicator_end_value(indic1, 40)
|
||||
|
||||
indic2 = meter.add_arc(scale, indic_w, lv.palette_main(lv.PALETTE.YELLOW), 0)
|
||||
indic2 = meter.add_arc(indic_w, lv.palette_main(lv.PALETTE.YELLOW), 0)
|
||||
meter.set_indicator_start_value(indic2, 40) # Start from the previous
|
||||
meter.set_indicator_end_value(indic2, 80)
|
||||
|
||||
indic3 = meter.add_arc(scale, indic_w, lv.palette_main(lv.PALETTE.DEEP_ORANGE), 0)
|
||||
indic3 = meter.add_arc(indic_w, lv.palette_main(lv.PALETTE.DEEP_ORANGE), 0)
|
||||
meter.set_indicator_start_value(indic3, 80) # Start from the previous
|
||||
meter.set_indicator_end_value(indic3, 100)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user