[Open source] Multifunctional Weighing Device

——Gikan sa DWIN Developer Forum

Niini nga isyu, among giduso ang award-winning nga open-source nga kaso sa DWIN Developer Forum - Multi-function Weigher. Gisagop sa engineer ang usa ka 4-pulgada nga COF nga smart screen, ug pinaagi sa interaksyon sa datos tali sa T5L OS core ug HX711 module ug 5kg pressure sensor set, ang mga tiggamit dali nga makaamgo sa pag-ihap sa mga function sa pagpakita sama sa gibug-aton, presyo sa yunit, kinatibuk-ang presyo, tare, ug uban pa. ., ingon man usab ang mga gimbuhaton sa pag-ihap, pagsubay sa mga kurba sa pagbag-o sa gibug-aton, ug pagtul-id sa katukma sa weigher, ug uban pa, aron dali nga molihok tali sa lainlaing mga senaryo sa aplikasyon aron matagamtam ang usa ka kombenyente ug episyente nga kasinatian sa pagtimbang.

1. Pag-uswag sa UI

f26af533d43728cd210e0f7af5e7acc

2.C51 Disenyo

Kabahin sa reference code alang sa weigher aron ipatuman ang pricing function mao ang mosunod:

// Panid sa Pagpresyo ====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Pagpresyo sa Tare Timbang

uint32_t valuation_unit_price = 0; // Presyo sa Yunit

// Pag-refresh sa Presyo sa Yunit

bakante nga page_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

kung(pagbili_unit_presyo

{

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);

}

lain pa kung(pagbalor_unit_presyo

{

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);

}

lain pa kung(pagtimbang_unit_presyo

{

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);

}

lain pa kon(pagtimbang_unit_presyo

{

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);

}

}

 

// Pag-refresh sa Timbang

bakante nga page_valuation_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

kung(gram_value >= valuation_decorticate)

{

gram_display = gram_value - valuation_decorticate;

kung(gram_display

{

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

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

lain kung(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);

}

lain kung(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);

}

lain kung(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);

}

lain kung(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);

}

}

lain

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Kinatibuk-ang Presyo Refresh

bakante nga page_valuation_price_refresh()

{

uint32_t price_value = 0;

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

kung(gram_value >= valuation_decorticate)

{

bili_presyo = (bili_gramo - valuation_decorticate) * valuation_unit_price * 2 / 1000;

kung(price_value

{

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

test_display[1] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain kon(price_value

{

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

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

test_display[2] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain kon(price_value

{

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

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

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

test_display[3] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

lain kon(price_value

{

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

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

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

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

test_display[4] = '.';

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

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

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

lain

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

bakante nga page_valuation_decorticate()

{

valuation_decorticate = gram_value;

page_valuation_weight_refresh();

}

bakante nga page_valuation_1()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 1;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_2()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 2;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_3()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 3;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_4()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 4;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_5()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 5;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_6()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 6;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_7()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 7;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_8()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 8;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_9()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 9;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_0()

{

kung(pagbili_unit_presyo

{

valuation_unit_price = valuation_unit_price * 10 + 0;

page_valuation_unit_price_refresh();

}

}

bakante nga page_valuation_back()

{

valuation_unit_price = valuation_unit_price / 10;

page_valuation_unit_price_refresh();

}

bakante nga page_valuation_clear()

{

valuation_unit_price = 0;

page_valuation_unit_price_refresh();

}


Oras sa pag-post: Abr-28-2024