——Fra DWIN Developer Forum
Den prisvindende open source-case anbefalet af DWIN-forummet kan bruges i byggebranchen til at detektere indhold af cementkomponenter - et cement-måleinstrument med flere mængder baseret på T5L-smartskærm.Ingeniører bruger T5L-smartskærmen til at styre det elektroniske vægtdetekteringsmodul, temperaturmålingsmodul, varmemodul, fugtsensor og blandingsmodul til at realisere detektionsfunktionen af fast opløsning og flydende cementkomponentindhold og understøtte realtidsvisning af rate, temperaturindstilling, historieregistrering, faseparameterindstilling og andre funktioner.
1. Programstruktur
2. UI Materiale Display
3.UI udvikling eksempel
4.C51 softwaredesign
Initialiseringskommandoprogrammet for ingeniøren til at kommunikere med kontrolkortet ved hjælp af T5L seriel port 2 er som følger:
void app_init()
{
is_testing = 0;
test_run_time = 0;
er_sek = 0;
periode1 = 0;
er_periode1 = 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);
}
Hovedprogrammet for den intelligente T5L-skærm, der interagerer med kontrolpanelet for at realisere funktionen af detektion af cementsammensætning, er som følger:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(er_tester&&er_sek.)
{
er_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 += (hastighed_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;
}
}
hvis(er_periode1)
{
er_periode1 = 0;
t_sample();
if(er_tester&&er_da_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(er_btn_scan==0)
Vend tilbage;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
Vend tilbage;
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 kildekoden for mere.
Posttid: Dec-02-2023