[Malferma fonto] Multfunkcia Pezilo

——El Forumo por Programistoj de DWIN

En ĉi tiu numero, ni puŝas la premiitan malfermfontan kazon de DWIN Developer Forum - Multfunkcia Pezilo. La inĝeniero adoptas 4-colan COF inteligentan ekranon, kaj per la datuma interago inter T5L OS-kerno kaj HX711-modulo kaj 5kg-prema sensilo-aro, uzantoj povas facile realigi la kalkulajn ekranfunkciojn kiel ekzemple pezo, unuoprezo, totala prezo, taro ktp. ., same kiel la funkcioj de kalkulado, spurado de pezŝanĝaj kurboj kaj korektado de pezilo-precizeco, ktp., por ke estas facile ŝanĝi inter malsamaj aplikaĵscenaroj por ĝui oportunan kaj efikan pezan sperton.

1. Disvolviĝo de UI

f26af533d43728cd210e0f7af5e7acc

2.C51 Dezajno

Parto de la referenckodo por la pezilo por efektivigi la prezfunkcion estas kiel sekvas:

// Prezopaĝo===================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t taksado_decorticate = 0; // Prezo Tara Pezo

uint32_t taksado_unua_prezo = 0; //Prezo unuopa

// Unueca Prezo Refreŝigo

malplenigi page_valuation_unit_price_refresh ()

{

uint8_t test_display[10] = {0};

if(valora_unua_prezo

{

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

testo_montri[1] = '.';

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

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

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if(valora_unua_prezo

{

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

testo_montro[1] = takso_unua_prezo / 100 % 10 + 0x30;

test_display[2] = '.';

test_montri[3] = takso_unua_prezo / 10 % 10 + 0x30;

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

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if(valora_unua_prezo

{

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

test_montri[1] = takso_unua_prezo / 1000 % 10 + 0x30;

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

test_display[3] = '.';

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

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

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if(valora_unua_prezo

{

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

test_montri[1] = takso_unua_prezo / 10000 % 10 + 0x30;

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

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

test_display[4] = '.';

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

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

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// Pezo Refreŝigi

malplena page_valuation_weight_refresh ()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

if(gram_valoro >= taksado_malkortikigi)

{

gram_montri = gram_valoro - taksado_decorticate;

if(gramo_montro

{

testo_montro[0] = gramo_montro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_montraĵo

{

testo_montro[0] = gramo_montro / 10 % 10 + 0x30;

testo_montro[1] = gramo_montro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_montraĵo

{

testo_montro[0] = gramo_montrado / 100 % 10 + 0x30;

testo_montro[1] = gramo_montro / 10 % 10 + 0x30;

testo_montro[2] = gramo_montro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gramo_montro

{

testo_montro[0] = gramo_montro / 1000 % 10 + 0x30;

testo_montro[1] = gramo_montro / 100 % 10 + 0x30;

testo_montro[2] = gramo_montro / 10 % 10 + 0x30;

testo_montro[3] = gramo_montro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gramo_montro

{

testo_montro[0] = gramo_montro / 10000 % 10 + 0x30;

testo_montro[1] = gramo_montro / 1000 % 10 + 0x30;

testo_montro[2] = gramo_montro / 100 % 10 + 0x30;

testo_montro[3] = gramo_montro / 10 % 10 + 0x30;

testo_montro[4] = gramo_montro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

}

alie

{

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// Totala Prezo Refreŝigo

malplenigi page_valuation_price_refresh ()

{

uint32_t prezo_valoro = 0;

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

if(gram_valoro >= taksado_malkortikigi)

{

prezo_valoro = (gramo_valoro - taksado_decorticate) * taksado_unua_prezo * 2 / 1000;

se(valoro_prezo

{

test_montri[0] = prezo_valoro / 100 % 10 + 0x30;

testo_montri[1] = '.';

test_montri[2] = prezo_valoro / 10 % 10 + 0x30;

testo_montri[3] = prezo_valoro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(valoro_prezo

{

test_montri[0] = prezo_valoro / 1000 % 10 + 0x30;

testo_montri[1] = prezo_valoro / 100 % 10 + 0x30;

test_display[2] = '.';

testo_montri[3] = prezo_valoro / 10 % 10 + 0x30;

testo_montri[4] = prezo_valoro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(valoro_prezo

{

testo_montri[0] = prezo_valoro / 10000 % 10 + 0x30;

testo_montri[1] = prezo_valoro / 1000 % 10 + 0x30;

testo_montri[2] = prezo_valoro / 100 % 10 + 0x30;

test_display[3] = '.';

testo_montri[4] = prezo_valoro / 10 % 10 + 0x30;

test_montri[5] = prezo_valoro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if(valoro_prezo

{

test_montri[0] = prezo_valoro / 100000 % 10 + 0x30;

testo_montri[1] = prezo_valoro / 10000 % 10 + 0x30;

testo_montri[2] = prezo_valoro / 1000 % 10 + 0x30;

testo_montri[3] = prezo_valoro / 100 % 10 + 0x30;

test_display[4] = '.';

testo_montri[5] = prezo_valoro / 10 % 10 + 0x30;

testo_montri[6] = prezo_valoro / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

alie

{

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

void page_valuation_decorticate()

{

taksado_decorticate = gram_valoro;

paĝo_valora_pezo_refreŝi ();

}

malplena paĝo_valoro_1()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 1;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_2()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 2;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_3()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 3;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_4()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 4;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_5()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 5;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_6()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 6;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_7()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 7;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_8()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 8;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_9()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 9;

paĝo_valora_unua_prezo_refreŝi ();

}

}

malplena paĝo_valoro_0()

{

if(valora_unua_prezo

{

taksado_unua_prezo = taksado_unua_prezo * 10 + 0;

paĝo_valora_unua_prezo_refreŝi ();

}

}

void page_valuation_back ()

{

taksado_unua_prezo = taksado_unua_prezo / 10;

paĝo_valora_unua_prezo_refreŝi ();

}

void page_valuation_clear ()

{

taksado_unua_prezo = 0;

paĝo_valora_unua_prezo_refreŝi ();

}


Afiŝtempo: Apr-28-2024