[ღია წყარო] მრავალფუნქციური ასაწონი მოწყობილობა

——DWIN დეველოპერთა ფორუმიდან

ამ ნომერში ჩვენ ვაყენებთ DWIN დეველოპერის ფორუმის ღია კოდის ჯილდოს მფლობელის ქეისს - მრავალფუნქციური საწონი. ინჟინერი იღებს 4 დიუმიან COF სმარტ ეკრანს და მონაცემთა ურთიერთქმედების საშუალებით T5L OS ბირთვსა და HX711 მოდულსა და 5 კგ წნევის სენსორის კომპლექტს შორის, მომხმარებლებს შეუძლიათ ადვილად გააცნობიერონ ეკრანის დათვლის ფუნქციები, როგორიცაა წონა, ერთეულის ფასი, მთლიანი ფასი, ტარი და ა.შ. ., ისევე როგორც დათვლის, წონის ცვლილების მრუდების თვალყურის დევნების და აწონის სიზუსტის კორექტირების ფუნქციებს და ა.შ., ასე რომ ადვილია გადართვა აპლიკაციის სხვადასხვა სცენარს შორის მოსახერხებელი და ეფექტური აწონვის გამოცდილებით.

1. UI განვითარება

f26af533d43728cd210e0f7af5e7acc

2.C51 დიზაინი

ფასის ფუნქციის განსახორციელებლად ამწონის საცნობარო კოდის ნაწილი შემდეგია:

// ფასების გვერდი====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // ფასების ტარის წონა

uint32_t valuation_unit_price = 0; //Ერთეულის ფასი

// ერთეულის ფასის განახლება

void page_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

if (შეფასების_ერთეულის_ფასი

{

ტესტი_დისპლეი[0] = შეფასების_ერთეულის ფასი / 100 % 10 + 0x30;

test_display[1] = '.';

ტესტი_დისპლეი[2] = შეფასების_ერთეულის ფასი / 10 % 10 + 0x30;

ტესტი_დისპლეი[3] = შეფასების_ერთეულის ფასი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if (შეფასების_ერთეულის ფასი

{

ტესტი_დისპლეი[0] = შეფასების_ერთეულის ფასი / 1000 % 10 + 0x30;

ტესტი_დისპლეი[1] = შეფასების_ერთეულის ფასი / 100 % 10 + 0x30;

test_display[2] = '.';

ტესტი_დისპლეი[3] = შეფასების_ერთეულის ფასი / 10 % 10 + 0x30;

ტესტი_დისპლეი[4] = შეფასების_ერთეულის ფასი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if(შეფასების_ერთეულის_ფასი

{

ტესტი_დისპლეი[0] = შეფასების_ერთეულის ფასი / 10000 % 10 + 0x30;

ტესტი_დისპლეი[1] = შეფასების_ერთეულის ფასი / 1000 % 10 + 0x30;

ტესტი_დისპლეი[2] = შეფასების_ერთეულის ფასი / 100 % 10 + 0x30;

test_display[3] = '.';

ტესტი_დისპლეი[4] = შეფასების_ერთეულის ფასი / 10 % 10 + 0x30;

ტესტი_დისპლეი[5] = შეფასების_ერთეულის ფასი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

else if (შეფასების_ერთეულის_ფასი

{

ტესტი_დისპლეი[0] = შეფასების_ერთეულის ფასი / 100000 % 10 + 0x30;

ტესტი_დისპლეი[1] = შეფასების_ერთეულის ფასი / 10000 % 10 + 0x30;

ტესტი_დისპლეი[2] = შეფასების_ერთეულის ფასი / 1000 % 10 + 0x30;

ტესტი_დისპლეი[3] = შეფასების_ერთეულის ფასი / 100 % 10 + 0x30;

test_display[4] = '.';

ტესტი_დისპლეი[5] = შეფასების_ერთეულის ფასი / 10 % 10 + 0x30;

ტესტი_დისპლეი[6] = შეფასების_ერთეულის ფასი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);

}

}

 

// წონის განახლება

void page_valuation_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

if (გრამის_მნიშვნელობა >= შეფასება_გაფორმება)

{

გრამ_დისპლეი = გრამ_მნიშვნელობა - შეფასება_გაფორმება;

if (გრამის_დისპლეი

{

ტესტი_დისპლეი[0] = გრამის_დისპლეი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if (გრამის_დისპლეი

{

ტესტი_დისპლეი[0] = გრამის_დისპლეი / 10 % 10 + 0x30;

ტესტი_დისპლეი[1] = გრამის_დისპლეი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if (გრამის_დისპლეი

{

ტესტი_დისპლეი[0] = გრამის_დისპლეი / 100 % 10 + 0x30;

ტესტი_დისპლეი[1] = გრამის_დისპლეი / 10 % 10 + 0x30;

ტესტი_დისპლეი[2] = გრამის_დისპლეი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if (გრამის_დისპლეი

{

ტესტი_დისპლეი[0] = გრამის_დისპლეი / 1000 % 10 + 0x30;

ტესტი_დისპლეი[1] = გრამის_დისპლეი / 100 % 10 + 0x30;

ტესტი_დისპლეი[2] = გრამის_დისპლეი / 10 % 10 + 0x30;

ტესტი_დისპლეი[3] = გრამის_დისპლეი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if (გრამის_დისპლეი

{

ტესტი_დისპლეი[0] = გრამის_დისპლეი / 10000 % 10 + 0x30;

ტესტი_დისპლეი[1] = გრამის_დისპლეი / 1000 % 10 + 0x30;

ტესტი_დისპლეი[2] = გრამის_დისპლეი / 100 % 10 + 0x30;

ტესტი_დისპლეი[3] = გრამის_დისპლეი / 10 % 10 + 0x30;

ტესტი_დისპლეი[4] = გრამის_დისპლეი / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

}

სხვა

{

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// მთლიანი ფასის განახლება

ბათილად page_valuation_price_refresh()

{

uint32_t ფასი_ღირებულება = 0;

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

if (გრამის_მნიშვნელობა >= შეფასება_გაფორმება)

{

ფასი_ღირებულება = (გრამის_ღირებულება - შეფასება_დეკორტიკატი) * შეფასების_ერთეულის ფასი * 2 / 1000;

if (price_value

{

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

test_display[1] = '.';

ტესტი_ჩვენება[2] = ფასი_ღირებულება / 10 % 10 + 0x30;

ტესტი_ჩვენება[3] = ფასი_ღირებულება / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if (price_value

{

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

ტესტი_დისპლეი[1] = ფასი_ღირებულება / 100 % 10 + 0x30;

test_display[2] = '.';

ტესტი_დისპლეი[3] = ფასი_ღირებულება / 10 % 10 + 0x30;

ტესტი_დისპლეი[4] = ფასი_ღირებულება / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if (price_value

{

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

ტესტი_დისპლეი[1] = ფასი_ღირებულება / 1000 % 10 + 0x30;

ტესტი_დისპლეი[2] = ფასი_ღირებულება / 100 % 10 + 0x30;

test_display[3] = '.';

ტესტი_დისპლეი[4] = ფასი_ღირებულება / 10 % 10 + 0x30;

ტესტი_დისპლეი[5] = ფასი_ღირებულება / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

else if (price_value

{

ტესტი_ჩვენება[0] = ფასი_ღირებულება / 100000 % 10 + 0x30;

ტესტი_დისპლეი[1] = ფასი_ღირებულება / 10000 % 10 + 0x30;

ტესტი_დისპლეი[2] = ფასი_ღირებულება / 1000 % 10 + 0x30;

ტესტი_დისპლეი[3] = ფასი_ღირებულება / 100 % 10 + 0x30;

test_display[4] = '.';

ტესტი_დისპლეი[5] = ფასი_ღირებულება / 10 % 10 + 0x30;

ტესტი_ჩვენება[6] = ფასი_ღირებულება / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

სხვა

{

dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

void page_valuation_decorticate()

{

შეფასება_გაფორმება = გრამ_მნიშვნელობა;

page_valuation_weight_refresh();

}

ბათილი page_valuation_1()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 1;

page_valuation_unit_price_refresh();

}

}

ბათილია page_valuation_2()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 2;

page_valuation_unit_price_refresh();

}

}

ბათილი page_valuation_3()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეული_ფასი = შეფასების_ერთეულის ფასი * 10 + 3;

page_valuation_unit_price_refresh();

}

}

ბათილი page_valuation_4()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის ფასი = შეფასების_ერთეულის ფასი * 10 + 4;

page_valuation_unit_price_refresh();

}

}

void page_valuation_5()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 5;

page_valuation_unit_price_refresh();

}

}

void page_valuation_6()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეული_ფასი = შეფასების_ერთეულის_ფასი * 10 + 6;

page_valuation_unit_price_refresh();

}

}

void page_valuation_7()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 7;

page_valuation_unit_price_refresh();

}

}

void page_valuation_8()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეული_ფასი = შეფასების_ერთეულის ფასი * 10 + 8;

page_valuation_unit_price_refresh();

}

}

ბათილი page_valuation_9()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 9;

page_valuation_unit_price_refresh();

}

}

ბათილი page_valuation_0()

{

if (შეფასების_ერთეულის_ფასი

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი * 10 + 0;

page_valuation_unit_price_refresh();

}

}

void page_valuation_back()

{

შეფასების_ერთეულის_ფასი = შეფასების_ერთეულის_ფასი / 10;

page_valuation_unit_price_refresh();

}

void page_valuation_clear()

{

შეფასების_ერთეულის ფასი = 0;

page_valuation_unit_price_refresh();

}


გამოქვეყნების დრო: აპრ-28-2024