[Öppen källkod] Cement Multi-amount Mätinstrument

——Från DWIN Developer Forum

Det prisbelönta fallet med öppen källkod som rekommenderas av DWIN-forumet kan användas inom byggbranschen för att upptäcka innehåll av cementkomponenter - ett cementmätinstrument för flera mängder baserat på T5L smart skärm.Ingenjörer använder T5L smarta skärm för att styra den elektroniska viktdetekteringsmodulen, temperaturmätningsmodulen, värmemodulen, fuktsensorn och blandningsmodulen för att realisera detekteringsfunktionen för fast lösning och innehåll av flytande cement, och stödja realtidsvisning av hastighet, temperaturinställning, historikregistrering, scenparameterinställning och andra funktioner.

1. Programstruktur

acdsb (1)

2. UI Material Display

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

3.UI-utvecklingsexempel

acdsb (6)

4.C51 mjukvarudesign

Initieringskommandoprogrammet för ingenjören att kommunicera med styrkortet med T5L serieport 2 är som följer:

void app_init()

{

is_testing = 0;

test_run_time = 0;

är_sek = 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);

}

Huvudprogrammet för den intelligenta T5L-skärmen som interagerar med styrkortet för att realisera funktionen för detektering av cementsammansättning är som följer:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(testar&&är_sek)

{

är_sek = 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 += (hastighet_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;

}

}

om(är_period1)

{

is_period1 = 0;

t_sample();

if(är_testar&&är_sv_tmp)

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

}

if(is_btn_scan==0)

lämna tillbaka;

is_btn_scan = 0;

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

if(btn_val==0)

lämna tillbaka;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Se källkoden för mer.


Posttid: Dec-02-2023