——Gikan sa DWIN Developer Forum
Ang award-winning nga open source nga kaso nga girekomenda sa DWIN forum mahimong magamit sa industriya sa konstruksyon aron makit-an ang sulud sa sangkap sa semento - usa ka instrumento sa pagsukod nga daghang kantidad nga semento nga gibase sa T5L smart screen. Gigamit sa mga inhenyero ang T5L smart screen aron makontrol ang electronic weight detection module, temperature measurement module, heating module, moisture sensor, ug mixing module aron maamgohan ang detection function sa solid solution ug liquid cement component content, ug pagsuporta sa real-time nga pagpakita sa rate, setting sa temperatura, rekord sa kasaysayan, setting sa parameter sa Stage ug uban pang mga gimbuhaton.
1. Istruktura sa Programa
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2.UI Materyal nga Display
![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.Ehemplo sa Pagpalambo sa UI
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 software nga disenyo
Ang initialization command program para sa engineer nga makigkomunikar sa control board gamit ang T5L serial port 2 mao ang mosunod:
void app_init()
{
is_testing = 0;
test_run_time = 0;
is_sec = 0;
yugto1 = 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);
}
Ang nag-unang programa sa T5L intelihenteng screen nga nakig-uban sa control board aron maamgohan ang function sa semento nga komposisyon detection mao ang mosunod:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
kung(is_testing&&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);
kung(uart2rxsta&UART2_PACKET_OK)
{
kung(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}lain kon(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);
}lain kon(uart2buf[0]==0x04)
{
total_num = uart2buf[1]*256+uart2buf[2];
}lain kon(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
kung(is_period1)
{
is_period1 = 0;
t_sample();
kung(is_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
kung(is_btn_scan==0)
pagbalik;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
kung(btn_val==0)
pagbalik;
kung(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Tan-awa ang source code alang sa dugang.
Oras sa pag-post: Dis-02-2023