Arc Gauge

Lab 2: Arc Widget (Circular Gauge)


1. ΰΉ‚ΰΈ„ΰΈ£ΰΈ‡ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ΰΈ ΰΈ²ΰΈžΰΈ£ΰΈ§ΰΈ‘ΰΈ‚ΰΈ­ΰΈ‡ Lab

Why? - ΰΈ—ΰΈ³ΰΉ„ΰΈ‘ΰΈ•ΰΉ‰ΰΈ­ΰΈ‡ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΉ€ΰΈ£ΰΈ·ΰΉˆΰΈ­ΰΈ‡ΰΈ™ΰΈ΅ΰΉ‰

  • Circular Display: แΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΉΰΈšΰΈšΰΈ§ΰΈ‡ΰΈΰΈ₯ΰΈ‘ΰΈͺΰΈ§ΰΈ’ΰΈ‡ΰΈ²ΰΈ‘

  • Angular Data: ΰΉ€ΰΈ«ΰΈ‘ΰΈ²ΰΈ°ΰΈΰΈ±ΰΈš Gyroscope, Compass, Angle

  • Professional UI: Dashboard ΰΈ—ΰΈ΅ΰΉˆΰΈ”ΰΈΉΰΈ‘ΰΈ·ΰΈ­ΰΈ­ΰΈ²ΰΈŠΰΈ΅ΰΈž

What? - ΰΈˆΰΈ°ΰΉ„ΰΈ”ΰΉ‰ΰΉ€ΰΈ£ΰΈ΅ΰΈ’ΰΈ™ΰΈ£ΰΈΉΰΉ‰ΰΈ­ΰΈ°ΰΉ„ΰΈ£

  1. Arc Widget: ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ circular gauge

  2. Rotation & Angles: ΰΈΰΈ³ΰΈ«ΰΈ™ΰΈ”ΰΈ‘ΰΈΈΰΈ‘ΰΉ€ΰΈ£ΰΈ΄ΰΉˆΰΈ‘ΰΈ•ΰΉ‰ΰΈ™ΰΉΰΈ₯ΰΈ° span

  3. Arc Styling: ΰΈ›ΰΈ£ΰΈ±ΰΈšΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ«ΰΈ™ΰΈ², ΰΈͺΰΈ΅

  4. Value Label: แΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΈ•ΰΈ£ΰΈ‡ΰΈΰΈ₯ΰΈ²ΰΈ‡

How? - ΰΈˆΰΈ°ΰΈ—ΰΈ³ΰΈ­ΰΈ’ΰΉˆΰΈ²ΰΈ‡ΰΉ„ΰΈ£

  1. ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ Arc widget ΰΈžΰΈ£ΰΉ‰ΰΈ­ΰΈ‘ΰΈΰΈ³ΰΈ«ΰΈ™ΰΈ” rotation

  2. ΰΈ•ΰΈ±ΰΉ‰ΰΈ‡ΰΈ„ΰΉˆΰΈ² background angles

  3. ΰΉ€ΰΈžΰΈ΄ΰΉˆΰΈ‘ label แΰΈͺΰΈ”ΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΈ•ΰΈ£ΰΈ‡ΰΈΰΈ₯ΰΈ²ΰΈ‡

  4. ΰΉƒΰΈŠΰΉ‰ timer ΰΈ­ΰΈ±ΰΈžΰΉ€ΰΈ”ΰΈ—ΰΈ„ΰΉˆΰΈ²ΰΉΰΈšΰΈš real-time


2. ΰΈ«ΰΈ₯ักการทำงานแΰΈ₯ΰΈ° Flowchart

2.1 Arc Geometry

2.2 Arc Configuration Flow

3. ΰΈŸΰΈ±ΰΈ‡ΰΈΰΉŒΰΈŠΰΈ±ΰΈ™ΰΈͺำคัญ

3.1 Arc Functions

Function
Description

lv_arc_create(parent)

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ arc widget

lv_arc_set_rotation(arc, angle)

ΰΈΰΈ³ΰΈ«ΰΈ™ΰΈ”ΰΈ‘ΰΈΈΰΈ‘ΰΉ€ΰΈ£ΰΈ΄ΰΉˆΰΈ‘ΰΈ•ΰΉ‰ΰΈ™

lv_arc_set_bg_angles(arc, start, end)

กำหนด background span

lv_arc_set_range(arc, min, max)

กำหนด value range

lv_arc_set_value(arc, value)

ΰΈ•ΰΈ±ΰΉ‰ΰΈ‡ΰΈ„ΰΉˆΰΈ²ΰΈ›ΰΈ±ΰΈˆΰΈˆΰΈΈΰΈšΰΈ±ΰΈ™

lv_arc_get_value(arc)

ΰΈ­ΰΉˆΰΈ²ΰΈ™ΰΈ„ΰΉˆΰΈ²ΰΈ›ΰΈ±ΰΈˆΰΈˆΰΈΈΰΈšΰΈ±ΰΈ™

3.2 Arc Styling

Function
Description

lv_obj_set_style_arc_width()

ΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ«ΰΈ™ΰΈ²ΰΈ‚ΰΈ­ΰΈ‡ arc

lv_obj_set_style_arc_color()

ΰΈͺΰΈ΅ΰΈ‚ΰΈ­ΰΈ‡ arc

lv_obj_remove_style(arc, NULL, LV_PART_KNOB)

ΰΈ‹ΰΉˆΰΈ­ΰΈ™ knob


4. Code Example

4.1 Global Variables

4.2 Arc Event Callback

4.3 Timer Callback

4.4 Main Function


5. ΰΈ­ΰΈ‡ΰΈ„ΰΉŒΰΈ„ΰΈ§ΰΈ²ΰΈ‘ΰΈ£ΰΈΉΰΉ‰ΰΉΰΈ₯ΰΈ°ΰΉ€ΰΈ—ΰΈ„ΰΈ™ΰΈ΄ΰΈ„

5.1 Arc Parts

5.2 Common Arc Configurations

Use Case
Rotation
BG Angles
Range

Gauge (3/4)

135Β°

0, 270

0-100

Full circle

270Β°

0, 360

-180 to +180

Half circle

180Β°

0, 180

0-100

Speedometer

135Β°

0, 270

0-200

5.3 Read-Only Arc (No Knob)


6. ΰΉΰΈšΰΈšΰΈΰΈΆΰΈΰΈ«ΰΈ±ΰΈ”

Exercise 1: Triple Arc Display

ΰΈͺΰΈ£ΰΉ‰ΰΈ²ΰΈ‡ Arc 3 อันแΰΈͺΰΈ”ΰΈ‡ X, Y, Z ΰΈ‚ΰΈ­ΰΈ‡ Gyroscope (Roll, Pitch, Yaw)

Exercise 2: Color Gradient Arc

ΰΉ€ΰΈ›ΰΈ₯ΰΈ΅ΰΉˆΰΈ’ΰΈ™ΰΈͺΰΈ΅ Arc ΰΈ•ΰΈ²ΰΈ‘ΰΈ„ΰΉˆΰΈ²:

  • Cyan: 0-50%

  • Yellow: 51-80%

  • Red: 81-100%


7. References


Previous Lab: Lab 1: Slider & Bar Next Lab: Lab 3: Chart Time-Series

Last updated

Was this helpful?