Atvirojo kodo T5L pagrįstas SMTP laiškininkas

Šis leidimas jums skirtas labai praktiškam Diwen Developer Forum apdovanojimus pelniusiam atvirojo kodo dėklui – T5L pagrindu sukurtas smtp pašto siuntėjas. administratoriui, ekrane galima įvesti gavėjo el. pašto adresą, el. pašto pavadinimą, el. pašto turinį ir kitą informaciją.Verta paminėti, kad el. pašto turinys taip pat palaiko paprastą tekstą, konfigūracijos valdiklius, teksto spalvos nustatymą ir kitus redagavimo būdus.

1.Programos architektūra

T5L išmanusis ekranas valdo WiFi modulį, kad sąveikautų su smtp serveriu per 5 nuoseklųjį prievadą, kad būtų galima siųsti el.

ava (1)

2.Sąsajos kūrimas

DGUS programinė įranga užbaigia ekrano ir jutiklinių funkcijų kūrimą per sluoksnių superpoziciją.Vartotojams tereikia įkelti paruoštas paveikslėlių medžiagas į DGUS programinę įrangą ir nustatyti ekrano bei lietimo funkcijas.

ava (2)

1. C51SįrangaDesign

T5L išmaniojo ekrano nuoseklusis prievadas 5 bendrauja su WiFi moduliu, kad užbaigtų sąveiką su smtp serveriu.Pagrindinio kodo dalis yra tokia:

void uart5_init (u32 bodas)

{

SCON3T = 0x80;

SCON3R = 0x80;

bodas = (u32)((dvigubas)(FOSC/8.0)/baud);

BODE3_DIV_H = (baud>>8)&0xff;

BODE3_DIV_L = bodas&0xff;

ES3R = 0;

ES3T = 0;

}

negalioja u5_send_byte(u8 baitas)

{

SBUF3_TX = baitas;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

void u5_send_bytes(u8 *bytes,u16 len)

{

u16 i;

for(i=0;i

{

SBUF3_TX = baitai;

while(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

void get_input (u8 * val, u8 len)

{

u8 i;

for(i=0;i

{

if(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

grąžinti;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 laukimo laikas,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

if(ack&&laukimo laikas&&cmd)

{

kol (--laukimas)

{

sys_delay_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

pertrauka;

}

}

if(laukimo laikas==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

grąžinti res;

}

typedef struct{

u8 cmd;

u8 el. paštas[20];

u8 vardas[20];

u8 pavadinimas[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO email_info;

u8 atsakyti[80];

u8 wifi_pavadinimas[30];

u8 wifi_passwd[30];

u8 serveris[30];

u8 prievadas[30];

u8 vartotojo vardas[30];

u8 auth_code[30];

u8 rx_sta;

sys_read_vp(0x1000,(u8*)&btn_val,1);

if(btn_val)

{

if(btn_val==1)

{

sys_read_vp(0x3000,el.pašto_informacija.vardas,10);

sys_read_vp(0x3020,email_info.email,10);

sys_read_vp(0x3040,email_info.title,10);

sys_read_vp(0x3060,email_info.msg,30);

gauti_input(el.pašto_informacija.vardas,20);

get_input(el.pašto_informacija.email,20);

get_input(el. pašto_informacija.pavadinimas,20);

get_input(email_info.msg,60);

siuntimo_paketas((u8*)&el.pašto_informacija,dydis(EMAIL_INFO));

if(rx_sta)

send_mail(email_info.email,email_info.title,email_info.msg);

}else if(btn_val==2)

{

sys_read_vp(0x3100,wifi_pavadinimas,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(wifi_name,30);

get_input(wifi_passwd,30);

}else if(btn_val==3)

{

sys_read_vp(0x3200,serveris,15);

sys_read_vp(0x3220,prievadas,15);

sys_read_vp(0x3240,naudotojo vardas,15);

sys_read_vp(0x3260,auth_code,15);

get_input(serveris,30);

get_input(port,30);

get_input(vartotojo vardas,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);

if(btn_val2!=old_val)

{

if(btn_val2==1)

sys_write_vp(0x3060,"Tai el. laiškas iš T5L!\0\0",30);

else if(btn_val2==2)

sys_write_vp(0x3060," \0\0",30);

else if(btn_val2==3)

sys_write_vp(0x3060"ParyškintasRaudona\0\0",30);

old_val = btn_val2;

}


Paskelbimo laikas: 2023-10-31