[Atviras šaltinis] Daugiafunkcis svėrimo įrenginys

——Iš DWIN kūrėjų forumo

Šiame numeryje pristatome apdovanojimus pelniusį atvirojo kodo DWIN kūrėjų forumo – daugiafunkcinio svėrimo dėklą. Inžinierius naudoja 4 colių COF išmanųjį ekraną, o dėl duomenų sąveikos tarp T5L OS branduolio ir HX711 modulio bei 5 kg slėgio jutiklių rinkinio vartotojai gali lengvai realizuoti skaičiavimo rodymo funkcijas, tokias kaip svoris, vieneto kaina, bendra kaina, tara ir kt. ., taip pat skaičiavimo, svorio kitimo kreivių sekimo, svėrimo tikslumo koregavimo ir kt. funkcijas, kad būtų lengva perjungti skirtingus taikymo scenarijus ir mėgautis patogia ir efektyvia svėrimo patirtimi.

1. UI kūrimas

f26af533d43728cd210e0f7af5e7acc

2.C51 Dizainas

Kainodaros funkcijai įgyvendinti skirta svarstyklių nuorodos kodo dalis yra tokia:

// Kainų puslapis====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t vertinimas_decorticate = 0; // Taros svoris

uint32_t vertinimo_vieneto_kaina = 0; //Vieneto kaina

// Vieneto kainos atnaujinimas

void page_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

if(vertinimo_vieneto_kaina

{

testo_rodymas[0] = vertinimo_vieneto_kaina / 100 % 10 + 0x30;

test_display[1] = '.';

testo_rodymas[2] = vertinimo_vieneto_kaina / 10 % 10 + 0x30;

testo_rodymas[3] = vertinimo_vieneto_kaina / 1 % 10 + 0x30;

dgus_show_text_value_set(VERTINIMO_UNIT_KAINOS_ADDR, testo_rodymas, 4);

}

else if(vertinimo_vieneto_kaina

{

testo_rodymas[0] = vertinimo_vieneto_kaina / 1000 % 10 + 0x30;

testo_rodymas[1] = vertinimo_vieneto_kaina / 100 % 10 + 0x30;

test_display[2] = '.';

testo_rodymas[3] = vertinimo_vieneto_kaina / 10 % 10 + 0x30;

testo_rodymas[4] = vertinimo_vieneto_kaina / 1 % 10 + 0x30;

dgus_show_text_value_set(VERTINIMO_UNIT_KAINOS_ADDR, testo_rodymas, 4);

}

else if(vertinimo_vieneto_kaina

{

testo_rodymas[0] = vertinimo_vieneto_kaina / 10000 % 10 + 0x30;

testo_rodymas[1] = vertinimo_vieneto_kaina / 1000 % 10 + 0x30;

testo_rodymas[2] = vertinimo_vieneto_kaina / 100 % 10 + 0x30;

test_display[3] = '.';

testo_rodymas[4] = vertinimo_vieneto_kaina / 10 % 10 + 0x30;

testo_rodymas[5] = vertinimo_vieneto_kaina / 1 % 10 + 0x30;

dgus_show_text_value_set(VERTINIMO_UNIT_KAINOS_ADDR, testo_rodymas, 4);

}

else if(vertinimo_vieneto_kaina

{

testo_rodymas[0] = vertinimo_vieneto_kaina / 100000 % 10 + 0x30;

testo_rodymas[1] = vertinimo_vieneto_kaina / 10000 % 10 + 0x30;

testo_rodymas[2] = vertinimo_vieneto_kaina / 1000 % 10 + 0x30;

testo_rodymas[3] = vertinimo_vieneto_kaina / 100 % 10 + 0x30;

test_display[4] = '.';

testo_rodymas[5] = vertinimo_vieneto_kaina / 10 % 10 + 0x30;

testo_rodymas[6] = vertinimo_vieneto_kaina / 1 % 10 + 0x30;

dgus_show_text_value_set(VERTINIMO_UNIT_KAINOS_ADDR, testo_rodymas, 4);

}

}

 

// Svorio atnaujinimas

void page_valuation_weight_refresh()

{

uint8_t test_display[10] = 0x30};

uint32_t gram_display = 0;

if(gramos_vertė >= vertinimas_dekortikuoti)

{

gramo_rodymas = gramo_vertė – vertinimas_dekortikuoti;

if(gram_display

{

testo_rodymas[0] = gramo_rodymas / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

testo_rodymas[0] = gramo_rodymas / 10 % 10 + 0x30;

testo_rodymas[1] = gramo_rodymas / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

testo_rodymas[0] = gramo_rodymas / 100 % 10 + 0x30;

testo_rodymas[1] = gramo_rodymas / 10 % 10 + 0x30;

testo_rodymas[2] = gramo_rodymas / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

testo_rodymas[0] = gramo_rodymas / 1000 % 10 + 0x30;

testo_rodymas[1] = gramo_rodymas / 100 % 10 + 0x30;

testo_rodymas[2] = gramo_rodymas / 10 % 10 + 0x30;

testo_rodymas[3] = gramo_rodymas / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

testo_rodymas[0] = gramo_rodymas / 10000 % 10 + 0x30;

testo_rodymas[1] = gramo_rodymas / 1000 % 10 + 0x30;

testo_rodymas[2] = gramo_rodymas / 100 % 10 + 0x30;

testo_rodymas[3] = gramo_rodymas / 10 % 10 + 0x30;

testo_rodymas[4] = gramo_rodymas / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

Kitas

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Bendros kainos atnaujinimas

void page_valuation_price_refresh()

{

uint32_t kainos_vertė = 0;

uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};

if(gramos_vertė >= vertinimas_dekortikuoti)

{

kainos_vertė = (gramų_vertė – įvertinimo_padekoravimas) * vertinimo_vieneto_kaina * 2 / 1000;

if(kainos_vertė

{

testo_rodymas[0] = kainos_vertė / 100 % 10 + 0x30;

test_display[1] = '.';

testo_rodymas[2] = kainos_vertė / 10 % 10 + 0x30;

testo_rodymas[3] = kainos_vertė / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(kainos_vertė

{

testo_rodymas[0] = kainos_vertė / 1000 % 10 + 0x30;

testo_rodymas[1] = kainos_vertė / 100 % 10 + 0x30;

test_display[2] = '.';

testo_rodymas[3] = kainos_vertė / 10 % 10 + 0x30;

testo_rodymas[4] = kainos_vertė / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(kainos_vertė

{

testo_rodymas[0] = kainos_vertė / 10000 % 10 + 0x30;

testo_rodymas[1] = kainos_vertė / 1000 % 10 + 0x30;

testo_rodymas[2] = kainos_vertė / 100 % 10 + 0x30;

test_display[3] = '.';

testo_rodymas[4] = kainos_vertė / 10 % 10 + 0x30;

testo_rodymas[5] = kainos_vertė / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(kainos_vertė

{

testo_rodymas[0] = kainos_vertė / 100000 % 10 + 0x30;

testo_rodymas[1] = kainos_vertė / 10000 % 10 + 0x30;

testo_rodymas[2] = kainos_vertė / 1000 % 10 + 0x30;

testo_rodymas[3] = kainos_vertė / 100 % 10 + 0x30;

test_display[4] = '.';

testo_rodymas[5] = kainos_vertė / 10 % 10 + 0x30;

testo_rodymas[6] = kainos_vertė / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

Kitas

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

void page_valuation_decorticate()

{

vertinimas_decorticate = gramo_vertė;

page_valuation_weight_refresh();

}

galiojantis puslapio_vertinimas_1()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 1;

page_valuation_unit_price_refresh();

}

}

negaliojantis puslapio_vertinimas_2()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 2;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_3()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 3;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_4()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 4;

page_valuation_unit_price_refresh();

}

}

negaliojantis puslapio_vertinimas_5()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 5;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_6()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 6;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_7()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 7;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_8()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 8;

page_valuation_unit_price_refresh();

}

}

void page_valuation_9()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 9;

page_valuation_unit_price_refresh();

}

}

galiojantis puslapio_vertinimas_0()

{

if(vertinimo_vieneto_kaina

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina * 10 + 0;

page_valuation_unit_price_refresh();

}

}

void page_valuation_back()

{

vertinimo_vieneto_kaina = vertinimo_vieneto_kaina / 10;

page_valuation_unit_price_refresh();

}

void page_valuation_clear()

{

vertinimo_vieneto_kaina = 0;

page_valuation_unit_price_refresh();

}


Paskelbimo laikas: 2024-04-28