——Van het DWIN-ontwikkelaarsforum
De bekroonde open source-case die wordt aanbevolen door het DWIN-forum kan in de bouwsector worden gebruikt om de inhoud van cementcomponenten te detecteren - een meetinstrument voor meerdere hoeveelheden cement, gebaseerd op het slimme T5L-scherm. Ingenieurs gebruiken het slimme T5L-scherm om de elektronische gewichtsdetectiemodule, de temperatuurmeetmodule, de verwarmingsmodule, de vochtsensor en de mengmodule te bedienen om de detectiefunctie van de inhoud van vaste oplossingen en vloeibare cementcomponenten te realiseren en om realtime weergave van de snelheid te ondersteunen. temperatuurinstelling, geschiedenisrecord, faseparameterinstelling en andere functies.
1. Programmastructuur
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2.UI-materiaalweergave
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3. Voorbeeld van UI-ontwikkeling
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 softwareontwerp
Het initialisatiecommandoprogramma waarmee de installateur met de besturingskaart kan communiceren via de T5L seriële poort 2 is als volgt:
ongeldige app_init()
{
is_testen = 0;
test_run_time = 0;
is_sec = 0;
periode1 = 0;
is_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);
}
Het hoofdprogramma van het intelligente T5L-scherm dat communiceert met de besturingskaart om de functie van detectie van cementsamenstelling te realiseren, is als volgt:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(is_testen&&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);
als(uart2rxsta&UART2_PACKET_OK)
{
als(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(zweven*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(zweven*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
snelheid_val = *(zweven*)(uart2buf+2);
disp_val += (snelheid_val*2,45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}anders if(uart2buf[0]==0x04)
{
totaal_getal = uart2buf[1]*256+uart2buf[2];
}anders if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
als(is_periode1)
{
is_periode1 = 0;
t_voorbeeld();
if(is_testen&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
als(is_btn_scan==0)
opbrengst;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
als(btn_val==0)
opbrengst;
als(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Raadpleeg de broncode voor meer informatie.
Posttijd: 02-dec-2023