Праграма SMTP Mailer з адкрытым зыходным кодам на базе T5L

Гэта праблема для вас, каб падштурхнуць вельмі практычны выпадак з адкрытым зыходным кодам, які атрымаў узнагароды на форуме распрацоўшчыкаў Diwen - адпраўнік пошты smtp на базе T5L, інжынеры выкарыстоўваюць смарт-экран T5L праз модуль WiFi для доступу да сервера smtp, каб атрымаць функцыю адпраўкі электроннай пошты адміністратару, аперацыя з экрана для ўводу адраса электроннай пошты атрымальніка, загалоўка электроннай пошты, змесціва электроннай пошты і іншай інфармацыі можа быць уведзена на экране.Варта адзначыць, што змесціва электроннай пошты таксама падтрымлівае звычайны тэкст, элементы кіравання канфігурацыяй, усталяванне колеру тэксту і іншыя метады рэдагавання.

1. Архітэктура праграмы

Смарт-экран T5L кіруе модулем WiFi для ўзаемадзеяння з серверам smtp праз паслядоўны порт 5 для выканання функцыі адпраўкі электроннай пошты.

ава (1)

2. Распрацоўка інтэрфейсу

Праграмнае забеспячэнне DGUS завяршае распрацоўку дысплея і сэнсарных функцый праз суперпазіцыю слаёў.Карыстальнікам трэба толькі загрузіць падрыхтаваныя выявы ў праграмнае забеспячэнне DGUS і наладзіць дысплей і сэнсарныя функцыі.

ава (2)

1. C51Sпраграмнае забеспячэннеDэзайн

Паслядоўны порт 5 разумнага экрана T5L звязваецца з модулем WiFi для завяршэння ўзаемадзеяння з серверам smtp.Частка асноўнага кода выглядае наступным чынам:

несапраўдны uart5_init(u32 бод)

{

SCON3T = 0x80;

SCON3R = 0x80;

бод = (u32)((двайны)(FOSC/8.0)/бод);

BODE3_DIV_H = (бод>>8)&0xff;

BODE3_DIV_L = перадача&0xff;

ES3R = 0;

ES3T = 0;

}

несапраўдны u5_send_byte(u8 байт)

{

SBUF3_TX = байт;

пакуль(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

несапраўдны u5_send_bytes(u8 *байт,u16 даўжыня)

{

u16 i;

для (я=0;я

{

SBUF3_TX = байты;

пакуль(!(SCON3T&0x01));

SCON3T &= 0xfe;

}

}

несапраўдны get_input(u8 * значэнне,u8 len)

{

u8 i;

для (я=0;я

{

калі (вал==0xff)

{

значэнне = 0x00;

значэнне [i+1] = 0x00;

вяртанне;

}

}

}

u8 esp8266_send_cmd(u8 *cmd,u8 *ack,u16 час чакання,u8 clearBuffer)

{

u8 res=0;

rx_sta=0;

калі (ack&&час чакання&&cmd)

{

пакуль (--час чакання)

{

sys_delay_ms(10);

калі (rx_sta&0X8000)

{

калі (esp8266_check_respond(ack))

разбіваць;

}

}

if(час чакання==0)res=1;

калі (clearBuffer==1)rx_sta=0;

}

вярнуць рэз;

}

typedef struct{

u8 cmd;

электронная пошта u8 [20];

імя u8 [20];

u8 назва[20];

u8 паведамленне [60];

}ІНФАРМАЦЫЯ_EMAIL;

EMAIL_INFO email_info;

u8 адказаць [80];

u8 wifi_name[30];

u8 wifi_passwd[30];

сервер u8 [30];

порт u8[30];

u8 імя карыстальніка [30];

u8 код_аўтэнтыфікацыі[30];

u8 rx_sta;

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

калі (btn_val)

{

калі (btn_val==1)

{

sys_read_vp(0x3000,email_info.name,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(email_info.name,20);

get_input(email_info.email,20);

get_input(email_info.title,20);

get_input(email_info.msg,60);

send_packet((u8*)&email_info,sizeof(EMAIL_INFO));

калі (rx_sta)

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

}інакш, калі (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);

}інакш, калі (btn_val==3)

{

sys_read_vp(0x3200,сервер,15);

sys_read_vp(0x3220,порт,15);

sys_read_vp(0x3240,імя карыстальніка,15);

sys_read_vp(0x3260,аўтэнтычны_код,15);

get_input(сервер,30);

get_input(порт,30);

get_input(імя карыстальніка,30);

get_input(аўтэнтычны_код,30);

}

 

btn_val = 0;

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

}

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

калі (btn_val2!=old_val)

{

калі (btn_val2==1)

sys_write_vp(0x3060,"Гэта ліст ад T5L!\0\0",30);

інакш, калі (btn_val2==2)

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

інакш, калі (btn_val2==3)

sys_write_vp(0x3060,"ТлустыЧырвоны\0\0",30);

old_val = btn_val2;

}


Час публікацыі: 31 кастрычніка 2023 г