——Dal forum degli sviluppatori DWIN
Il pluripremiato caso open source consigliato dal forum DWIN può essere utilizzato nel settore edile per rilevare il contenuto dei componenti del cemento: uno strumento di misurazione multiquantità del cemento basato sullo schermo intelligente T5L.Gli ingegneri utilizzano lo schermo intelligente T5L per controllare il modulo di rilevamento elettronico del peso, il modulo di misurazione della temperatura, il modulo di riscaldamento, il sensore di umidità e il modulo di miscelazione per realizzare la funzione di rilevamento della soluzione solida e del contenuto dei componenti di cemento liquido e supportare la visualizzazione in tempo reale della velocità, impostazione della temperatura, registrazione della cronologia, impostazione dei parametri della fase e altre funzioni.
1. Struttura del programma
2.Visualizzazione del materiale dell'interfaccia utente
3.Esempio di sviluppo dell'interfaccia utente
Progettazione del software 4.C51
Il programma di comando di inizializzazione affinché il tecnico possa comunicare con la scheda di controllo utilizzando la porta seriale 2 del T5L è il seguente:
void app_init()
{
sta_testando = 0;
test_run_time = 0;
is_sec = 0;
periodo1 = 0;
è_periodo1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
immagine_sistema(1);
send_bytes("AT+START\r\n",sizeof("AT+START\r\n")-1);
}
Il programma principale dello schermo intelligente T5L che interagisce con la scheda di controllo per realizzare la funzione di rilevamento della composizione del cemento è il seguente:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(sta_testando&&è_sec)
{
is_sec = 0;
prova_esecuzione_time++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));
combuff[btn_val+1] = 0;
sys_write_vp(TEST_TIME_VP,commbuff,5);
if(uart2rxsta&UART2_PACKET_OK)
{
se(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
peso_init = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}altrimenti se(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(float*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}altrimenti se(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
velocità_val = *(float*)(uart2buf+2);
disp_val += (velocità_val*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}altrimenti se(uart2buf[0]==0x04)
{
numero_totale = uart2buf[1]*256+uart2buf[2];
}altrimenti se(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
se(è_periodo1)
{
è_periodo1 = 0;
t_campione();
if(sta_testando&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
se(is_btn_scan==0)
ritorno;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
se(btn_val==0)
ritorno;
se(btn_val<=0x10)
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Fare riferimento al codice sorgente per ulteriori informazioni.
Orario di pubblicazione: 02-dic-2023