Malferma fonto T5L-bazita SMTP Mailer

Ĉi tiu afero por vi puŝi tre praktikan Diwen Developer Forum premiitan malfermfontan kazon - T5L-bazita smtp poŝtsendinto , inĝenieroj uzas la T5L inteligenta ekrano , tra la WiFi-modulo por aliri la smtp-servilo , por atingi la funkcion sendi retmesaĝojn al la administranto, la operacio de la ekrano por enigi la retpoŝtadreson de la ricevanto, retpoŝtan titolon, retpoŝtan enhavon kaj aliajn informojn povas esti enigataj sur la ekranon.Indas noti, ke la retpoŝta enhavo ankaŭ subtenas simplan tekston, agordajn kontrolojn, agordan tekstkoloron kaj aliajn redaktajn metodojn.

1.Programa Arkitekturo

T5L-inteligenta ekrano kontrolas la WiFi-modulon por interagi kun smtp-servilo per seria haveno 5 por atingi la funkcion de retpoŝta sendo.

ava (1)

2.Interfaco Evoluo

DGUS-programaro kompletigas la disvolviĝon de ekranaj kaj tuŝaj funkcioj per supermeto de tavoloj.Uzantoj nur bezonas ŝargi la pretajn bildmaterialojn en DGUS-programaron kaj agordi la ekranajn kaj tuŝajn funkciojn.

ava (2)

1. C51SoftaroDesign

T5L inteligenta ekrano seria haveno 5 komunikas kun WiFi-modulo por kompletigi la interagadon kun smtp-servilo.Parto de la ĉefa kodo estas kiel sekvas:

malplena uart5_init (u32 baŭdoj)

{

SCON3T = 0x80;

SCON3R = 0x80;

baŭdo = (u32)((duobla)(FOSC/8.0)/baŭdo);

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

BODE3_DIV_L = baud&0xff;

ES3R = 0;

ES3T = 0;

}

malplena u5_send_byte (u8 bajto)

{

SBUF3_TX = bajto;

dum(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

malplena u5_send_bytes (u8 *bajtoj,u16 len)

{

u16 i;

por(i=0;i

{

SBUF3_TX = bajtoj;

dum(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

malplena get_input (u8 * val, u8 len)

{

u8 i;

por(i=0;i

{

se(val==0xff)

{

val = 0x00;

val[i+1] = 0x00;

reveni;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 atendotempo,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

se(ack&&atendotempo&&cmd)

{

dum(--atendotempo)

{

sys_prokrasto_ms(10);

if(rx_sta&0X8000)

{

if(esp8266_check_respond(ack))

rompi;

}

}

if(atendotempo==0)res=1;

if(clearBuffer==1)rx_sta=0;

}

reveni res;

}

typedef struktur {

u8 cmd;

u8 retpoŝto[20];

u8 nomo[20];

u8 titolo[20];

u8 msg[60];

}EMAIL_INFO;

EMAIL_INFO retpoŝto_info;

u8 respondi[80];

u8 wifi_nomo[30];

u8 wifi_passwd[30];

u8-servilo[30];

u8 haveno[30];

u8 uzantnomo[30];

u8 aŭt_kodo[30];

u8 rx_sta;

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

se (btn_val)

{

if(btn_val==1)

{

sys_read_vp(0x3000,retpoŝto_info.nomo,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(retpoŝto_info.nomo,20);

get_input(retpoŝto_info.retpoŝto,20);

get_input(retpoŝto_info.titolo,20);

get_input(retpoŝto_info.msg,60);

sendi_pako((u8*)&retpoŝta_info,grandeco de(EMAIL_INFO));

se (rx_sta)

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

}else if(btn_val==2)

{

sys_read_vp(0x3100,wifi_nomo,15);

sys_read_vp(0x3120,wifi_passwd,15);

get_input(wifi_nomo,30);

get_input(wifi_passwd,30);

}alie se(btn_val==3)

{

sys_read_vp(0x3200,servilo,15);

sys_read_vp(0x3220,port,15);

sys_read_vp(0x3240,uzantnomo,15);

sys_read_vp(0x3260,aŭth_code,15);

get_input(servilo,30);

get_input(porto,30);

get_input(uzantnomo,30);

get_input(aŭth_code,30);

}

 

btn_val = 0;

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

}

sys_read_vp(0x2050,(u8*)&btn_val2,1);

if(btn_val2!=malnova_val)

{

if(btn_val2==1)

sys_write_vp(0x3060,"Ĉi tio estas retpoŝto de T5L!\0\0",30);

alie se(btn_val2==2)

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

alie se(btn_val2==3)

sys_write_vp(0x3060,"AŭdacaRuĝa\0\0",30);

old_val = btn_val2;

}


Afiŝtempo: Oct-31-2023