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 sukurtam smtp pašto siuntėjui. 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ąsajų 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. C51Snuolatinė į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 ir;

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_stay=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_stay;

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);

get_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škintas

Raudona

\0\0",30);

old_val = btn_val2;

}


Paskelbimo laikas: 2023-10-31