[Open Source] Cement Multi-amount Measuring Instrument

——Sa DWIN Developer Foruma

Nagrađivana kutija otvorenog koda koju preporučuje DWIN forum može se koristiti u građevinskoj industriji za detekciju sadržaja cementnih komponenti - mjerni instrument za više količine cementa baziran na T5L pametnom ekranu.Inženjeri koriste pametni ekran T5L za kontrolu elektronskog modula za detekciju težine, modula za mjerenje temperature, modula grijanja, senzora vlage i modula za miješanje kako bi ostvarili funkciju detekcije sadržaja čvrste otopine i tekućeg cementa, te podržavaju prikaz brzine u stvarnom vremenu, podešavanje temperature, zapis istorije, podešavanje parametara faze i druge funkcije.

1. Struktura programa

acdsb (1)

2. Prikaz materijala UI

acdsb (2)
acdsb (4)
acdsb (3)
acdsb (5)

3. Primjer razvoja korisničkog sučelja

acdsb (6)

4.C51 dizajn softvera

Program za inicijalizaciju naredbe za inženjera da komunicira sa kontrolnom pločom koristeći T5L serijski port 2 je sljedeći:

void app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

period1 = 0;

is_period1 = 0;

uart2_init(115200);

send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);

sys_delay_ms(2500);

sys_pic(1);

send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);

}

Glavni program T5L inteligentnog ekrana koji stupa u interakciju s kontrolnom pločom za realizaciju funkcije detekcije cementnog sastava je sljedeći:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testiranje&&is_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));

commbuff[btn_val+1] = 0;

sys_write_vp(TEST_TIME_VP,commbuff,5);

if(uart2rxsta&UART2_PACKET_OK)

{

if(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_weight = *(float*)(uart2buf+2);

init_weight *= (*(float*)flashdat);

sys_write_vp(0x1178, (u8*)&init_weight, 2);

}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(float*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

sys_write_vp(0x1180, (u8*)&init_ml, 2);

}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

speed_val = *(float*)(uart2buf+2);

disp_val += (speed_val*2.45f);

sys_write_vp(0x1180, (u8*)&disp_val, 2);

}else if(uart2buf[0]==0x04)

{

total_num = uart2buf[1]*256+uart2buf[2];

}else if(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if(je_period1)

{

is_period1 = 0;

t_sample();

if(is_testiranje&&is_en_tmp)

sys_write_vp(0x1170,(u8*)&tmp,2);

}

if(is_btn_scan==0)

povratak;

is_btn_scan = 0;

sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

if(btn_val==0)

povratak;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);

}

 

Pogledajte izvorni kod za više.


Vrijeme objave: Dec-02-2023