Le nkinga ukuze uphushe i-Diwen Developer Forum ewina umklomelo icala lomthombo ovulekile eliwine umklomelo - umthumeli we-imeyili we-smtp we-T5L , onjiniyela basebenzisa isikrini esihlakaniphile se-T5L , ngemojula ye-WiFi ukufinyelela iseva ye-smtp , ukuze bafeze umsebenzi wokuthumela ama-imeyili kumlawuli , ukusebenza kwesikrini ukufaka ikheli le-imeyili lomamukeli , isihloko se-imeyili, okuqukethwe kwe-imeyili nolunye ulwazi lungafakwa esikrinini.Kuyaphawuleka ukuthi okuqukethwe kwe-imeyili futhi kusekela umbhalo ongenalutho, izilawuli zokumisa, ukusetha umbala wombhalo nezinye izindlela zokuhlela.
1.Programme Architecture
Isikrini esihlakaniphile se-T5L silawula imojula ye-WiFi ukuze ihlanganyele neseva ye-smtp nge-serial port 5 ukuze kuzuzwe umsebenzi wokuthumela i-imeyili.
2.Ukuthuthukiswa Kwe-Interface
Isofthiwe ye-DGUS iqeda ukuthuthukiswa kokubonisa kanye nemisebenzi yokuthinta ngokusebenzisa i-superposition yezendlalelo.Abasebenzisi badinga kuphela ukulayisha izinto zesithombe ezilungisiwe ku-software ye-DGUS futhi basethe isibonisi kanye nemisebenzi yokuthinta.
1. C51SngaphandleDesign
I-T5L smart screen serial port 5 ixhumana nemojuli ye-WiFi ukuze iqedele ukusebenzisana neseva ye-smtp.Ingxenye yekhodi eyinhloko imi kanje:
i-void uart5_init(u32 baud)
{
I-SCON3T = 0x80;
I-SCON3R = 0x80;
i-baud = (u32) ((kabili) (FOSC/8.0)/i-baud);
BODE3_DIV_H = (baud>>8)&0xff;
BODE3_DIV_L = i-baud&0xff;
ES3R = 0;
ES3T = 0;
}
i-void u5_send_byte(u8 byte)
{
SBUF3_TX = ibhayithi;
ngenkathi(!(SCON3T&0x01));
I-SCON3T &= 0xfe;
}
i-void u5_send_bytes(u8 *bytes,u16 len)
{
u16 ngi;
okwe(i=0;i
{
SBUF3_TX = amabhayithi;
ngenkathi(!(SCON3T&0x01));
I-SCON3T &= 0xfe;
}
}
i-void_input(u8 * val,u8 len)
{
u8 ngi;
okwe(i=0;i
{
uma(val==0xff)
{
ival = 0x00;
ival[i+1] = 0x00;
buyela;
}
}
}
u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 waittime,u8 clearBuffer)
{
u8 res=0;
rx_sta=0;
uma(i-ack&&isikhathi sokulinda&&cmd)
{
ngenkathi(--waittime)
{
sys_delay_ms(10);
uma(rx_sta&0X8000)
{
uma(esp8266_check_respond(ack))
ikhefu;
}
}
uma(isikhathi sokulinda==0)res=1;
uma(clearBuffer==1)rx_sta=0;
}
res res;
}
uhlobo lwe-typedef{
u8cmd;
i-imeyili ye-u8[20];
u8 igama[20];
u8 isihloko[20];
u8 msg[60];
}EMAIL_INFO;
EMAIL_INFO email_info;
u8 phendula[80];
u8 wifi_name[30];
u8 wifi_passwd[30];
u8 iseva[30];
u8 port[30];
u8 igama lomsebenzisi[30];
u8 auth_code[30];
u8 rx_sta;
sys_read_vp(0x1000,(u8*)&btn_val,1);
uma(btn_val)
{
uma(btn_val==1)
{
sys_read_vp(0x3000,i-imeyili_info.name,10);
sys_read_vp(0x3020,imeyili_info.email,10);
sys_read_vp(0x3040,i-imeyili_info.title,10);
sys_read_vp(0x3060,imeyili_info.msg,30);
get_input(i-imeyili_info.name,20);
get_input(i-imeyili_info.email,20);
get_input(i-imeyili_info.title,20);
get_input(i-imeyili_info.msg,60);
send_packet((u8*)&email_info,sizeof(EMAIL_INFO));
uma(rx_sta)
send_mail(i-imeyili_info.email,i-imeyili_info.title,i-imeyili_info.msg);
}okunye uma(btn_val==2)
{
sys_read_vp(0x3100,wifi_name,15);
sys_read_vp(0x3120,wifi_passwd,15);
get_input(wifi_name,30);
get_input(wifi_passwd,30);
}okunye uma(btn_val==3)
{
sys_read_vp(0x3200,server,15);
sys_read_vp(0x3220,port,15);
sys_read_vp(0x3240,igama lomsebenzisi,15);
sys_read_vp(0x3260,auth_code,15);
get_input(iseva,30);
get_input(imbobo,30);
get_input(igama lomsebenzisi,30);
get_input(auth_code,30);
}
btn_val = 0;
sys_write_vp(0x1000,(u8*)&btn_val,1);
}
sys_read_vp(0x2050,(u8*)&btn_val2,1);
uma(btn_val2!=ival_elidala)
{
uma(btn_val2==1)
sys_write_vp(0x3060,"Le i-imeyili evela ku-T5L!\0\0",30);
okunye uma(btn_val2==2)
sys_write_vp(0x3060," \0\0",30);
okunye uma(btn_val2==3)
sys_write_vp(0x3060,"OkugqamileOkubomvu\0\0",30);
old_val = btn_val2;
}
Isikhathi sokuthumela: Oct-31-2023