[Open Source] Multifunktionnelle Waagegerät

——Vum DWIN Entwéckler Forum

An dëser Ausgab drécke mir de Präis-Zouschlag Open-Source Fall vum DWIN Developer Forum - Multi-function Weigher. Den Ingenieur adoptéiert e 4-Zoll COF Smart Bildschierm, an duerch d'Dateninteraktioun tëscht T5L OS Kär an HX711 Modul an 5kg Drocksensor Set, kënnen d'Benotzer einfach d'Zehldisplayfunktiounen realiséieren wéi Gewiicht, Eenheetspräis, Gesamtpräis, Tara, etc. ., souwéi d'Funktioune vum Zielen, Tracking vu Gewiichtsverännerungskurven, a Korrigéiere vun der Weigergenauegkeet, asw., sou datt et einfach ass tëscht verschiddenen Uwendungsszenarien ze wiesselen fir e praktescht an effizient Gewiichtserfarung ze genéissen.

1. UI Entwécklung

f26af533d43728cd210e0f7af5e7acc

2.C51 Design

En Deel vum Referenzcode fir de Gewiichter fir d'Präisfunktioun ëmzesetzen ass wéi follegt:

// Präis Säit====================

#definéieren VALUATION_UNIT_PRICE_ADDR 0x1010

#definéieren VALUATION_GRAM_ADDR 0x1000

#definéieren VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Präisser Tara Gewiicht

uint32_t valuation_unit_price = 0; //Eenzelpräis

// Eenheetspräis Refresh

void page_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

if(valuation_unit_price

{

test_display[0] = valuation_unit_price / 100 % 10 + 0x30;

test_display[1] = '.';

test_display[2] = valuation_unit_price / 10 % 10 + 0x30;

test_display[3] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

soss wann (valuation_unit_price

{

test_display[0] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 100 % 10 + 0x30;

test_display[2] = '.';

test_display[3] = valuation_unit_price / 10 % 10 + 0x30;

test_display[4] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

soss wann (valuation_unit_price

{

test_display[0] = valuation_unit_price / 10000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[2] = valuation_unit_price / 100 % 10 + 0x30;

test_display[3] = '.';

test_display[4] = valuation_unit_price / 10 % 10 + 0x30;

test_display[5] = valuation_unit_price / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

soss wann (valuation_unit_price

{

test_display[0] = valuation_unit_price / 100000 % 10 + 0x30;

test_display[1] = valuation_unit_price / 10000 % 10 + 0x30;

test_display[2] = valuation_unit_price / 1000 % 10 + 0x30;

test_display[3] = valuation_unit_price / 100 % 10 + 0x30;

test_display[4] = '.';

test_display[5] = valuation_unit_price / 10 % 10 + 0x30;

test_display[6] = valuation_unit_price / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// Gewiicht Refresh

void page_valuation_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

if(gram_value >= valuation_decorticate)

{

gram_display = gram_value - valuation_decorticate;

if(gram_display

{

test_display[0] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

soss wann (gram_display

{

test_display[0] = gram_display / 10 % 10 + 0x30;

test_display[1] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

soss wann (gram_display

{

test_display[0] = gram_display / 100 % 10 + 0x30;

test_display[1] = gram_display / 10 % 10 + 0x30;

test_display[2] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

soss wann (gram_display

{

test_display[0] = gram_display / 1000 % 10 + 0x30;

test_display[1] = gram_display / 100 % 10 + 0x30;

test_display[2] = gram_display / 10 % 10 + 0x30;

test_display[3] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

soss wann (gram_display

{

test_display[0] = gram_display / 10000 % 10 + 0x30;

test_display[1] = gram_display / 1000 % 10 + 0x30;

test_display[2] = gram_display / 100 % 10 + 0x30;

test_display[3] = gram_display / 10 % 10 + 0x30;

test_display[4] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

soss

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Ganzen Präis Refresh

void page_valuation_price_refresh()

{

uint32_t Präis_wäert = 0;

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

if(gram_value >= valuation_decorticate)

{

price_value = (gram_value - valuation_decorticate) * valuation_unit_price * 2/1000;

wann (Präis_Wäert

{

test_display[0] = Präis_wäert / 100 % 10 + 0x30;

test_display[1] = '.';

test_display[2] = Präis_wäert / 10 % 10 + 0x30;

test_display[3] = Präis_wäert / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

soss wann (Präis_Wäert

{

test_display[0] = Präis_Wäert / 1000 % 10 + 0x30;

test_display[1] = Präis_wäert / 100 % 10 + 0x30;

test_display[2] = '.';

test_display[3] = Präis_wäert / 10 % 10 + 0x30;

test_display[4] = Präis_wäert / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

soss wann (Präis_Wäert

{

test_display[0] = Präis_Wäert / 10000 % 10 + 0x30;

test_display[1] = Präis_wäert / 1000 % 10 + 0x30;

test_display[2] = Präis_wäert / 100 % 10 + 0x30;

test_display[3] = '.';

test_display[4] = Präis_wäert / 10 % 10 + 0x30;

test_display[5] = Präis_wäert / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

soss wann (Präis_Wäert

{

test_display[0] = Präis_Wäert / 100000 % 10 + 0x30;

test_display[1] = Präis_wäert / 10000 % 10 + 0x30;

test_display[2] = Präis_wäert / 1000 % 10 + 0x30;

test_display[3] = Präis_wäert / 100 % 10 + 0x30;

test_display[4] = '.';

test_display[5] = Präis_wäert / 10 % 10 + 0x30;

test_display[6] = Präis_wäert / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

soss

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

void page_valuation_decorticate()

{

valuation_decorticate = gram_value;

page_valuation_weight_refresh();

}

void page_valuation_1()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 1;

page_valuation_unit_price_refresh();

}

}

void page_valuation_2()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 2;

page_valuation_unit_price_refresh();

}

}

void page_valuation_3()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 3;

page_valuation_unit_price_refresh();

}

}

void page_valuation_4()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 4;

page_valuation_unit_price_refresh();

}

}

void page_valuation_5()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 5;

page_valuation_unit_price_refresh();

}

}

void page_valuation_6()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 6;

page_valuation_unit_price_refresh();

}

}

void page_valuation_7()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 7;

page_valuation_unit_price_refresh();

}

}

void page_valuation_8()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 8;

page_valuation_unit_price_refresh();

}

}

void page_valuation_9()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 9;

page_valuation_unit_price_refresh();

}

}

void page_valuation_0()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 0;

page_valuation_unit_price_refresh();

}

}

void page_valuation_back()

{

valuation_unit_price = valuation_unit_price / 10;

page_valuation_unit_price_refresh();

}

void page_valuation_clear()

{

valuation_unit_price = 0;

page_valuation_unit_price_refresh();

}


Post Zäit: Apr-28-2024