Ово издање за вас да покренете веома практичан Дивен Девелопер Форум награђивани случај отвореног кода - смтп пошиљалац поште заснован на Т5Л, инжењери користе Т5Л паметни екран, преко ВиФи модула за приступ смтп серверу, како би постигли функцију слања е-поште администратору, рад на екрану за унос адресе е-поште примаоца, наслова е-поште, садржаја е-поште и других информација може се унети на екран.Вреди напоменути да садржај е-поште такође подржава обичан текст, контроле конфигурације, подешавање боје текста и друге методе уређивања.
1.Програмска архитектура
Т5Л паметни екран контролише ВиФи модул за интеракцију са смтп сервером преко серијског порта 5 како би се постигла функција слања е-поште.
2.Развој интерфејса
ДГУС софтвер довршава развој функција приказа и додира кроз суперпозицију слојева.Корисници само треба да учитају припремљене сликовне материјале у ДГУС софтвер и подесе функције екрана и додира.
1. Ц51SофвареDесигн
Т5Л паметни екран серијски порт 5 комуницира са ВиФи модулом да би завршио интеракцију са смтп сервером.Део главног кода је следећи:
воид уарт5_инит(у32 бауд)
{
СЦОН3Т = 0к80;
СЦОН3Р = 0к80;
бауд = (у32)((доубле)(ФОСЦ/8.0)/бауд);
БОДЕ3_ДИВ_Х = (бауд>>8)&0кфф;
БОДЕ3_ДИВ_Л = бауд&0кфф;
ЕС3Р = 0;
ЕС3Т = 0;
}
воид у5_сенд_бите(у8 бите)
{
СБУФ3_ТКС = бајт;
вхиле(!(СЦОН3Т&0к01));
СЦОН3Т &= 0кфе;
}
воид у5_сенд_битес(у8 *битес,у16 лен)
{
у16 и;
фор(и=0;и
{
СБУФ3_ТКС = бајтови;
вхиле(!(СЦОН3Т&0к01));
СЦОН3Т &= 0кфе;
}
}
воид гет_инпут(у8 * вал,у8 лен)
{
у8 и;
фор(и=0;и
{
иф(вал==0кфф)
{
вал = 0к00;
вал[и+1] = 0к00;
повратак;
}
}
}
у8 есп8266_сенд_цмд(у8 *цмд,у8 *ацк,у16 време чекања,у8 цлеарБуффер)
{
у8 рес=0;
рк_ста=0;
иф(ацк&&време чекања&&цмд)
{
док (--време чекања)
{
сис_делаи_мс(10);
иф(рк_ста&0Кс8000)
{
иф(есп8266_цхецк_респонд(ацк))
пауза;
}
}
иф(време чекања==0)рес=1;
иф(цлеарБуффер==1)рк_ста=0;
}
ретурн рес;
}
типедеф струцт{
у8 цмд;
у8 емаил[20];
у8 име[20];
у8 титле[20];
у8 мсг[60];
}ЕМАИЛ_ИНФО;
ЕМАИЛ_ИНФО емаил_инфо;
у8 одговори[80];
у8 име_вифи[30];
у8 вифи_пассвд[30];
у8 сервер[30];
у8 порт[30];
у8 корисничко име[30];
у8 аутх_цоде[30];
у8 рк_ста;
сис_реад_вп(0к1000,(у8*)&бтн_вал,1);
иф(бтн_вал)
{
иф(бтн_вал==1)
{
сис_реад_вп(0к3000,емаил_инфо.наме,10);
сис_реад_вп(0к3020,емаил_инфо.емаил,10);
сис_реад_вп(0к3040,емаил_инфо.титле,10);
сис_реад_вп(0к3060,емаил_инфо.мсг,30);
гет_инпут(емаил_инфо.наме,20);
гет_инпут(емаил_инфо.емаил,20);
гет_инпут(емаил_инфо.титле,20);
гет_инпут(емаил_инфо.мсг,60);
сенд_пацкет((у8*)&емаил_инфо,сизеоф(ЕМАИЛ_ИНФО));
иф(рк_ста)
сенд_маил(емаил_инфо.емаил,емаил_инфо.титле,емаил_инфо.мсг);
}елсе иф(бтн_вал==2)
{
сис_реад_вп(0к3100,вифи_наме,15);
сис_реад_вп(0к3120,вифи_пассвд,15);
гет_инпут(вифи_наме,30);
гет_инпут(вифи_пассвд,30);
}елсе иф(бтн_вал==3)
{
сис_реад_вп(0к3200,сервер,15);
сис_реад_вп(0к3220,порт,15);
сис_реад_вп(0к3240,корисничко име,15);
сис_реад_вп(0к3260,аутх_цоде,15);
гет_инпут(сервер,30);
гет_инпут(порт,30);
гет_инпут(корисничко име,30);
гет_инпут(аутх_цоде,30);
}
бтн_вал = 0;
сис_врите_вп(0к1000,(у8*)&бтн_вал,1);
}
сис_реад_вп(0к2050,(у8*)&бтн_вал2,1);
иф(бтн_вал2!=олд_вал)
{
иф(бтн_вал2==1)
сис_врите_вп(0к3060,"Ово је емаил од Т5Л!\0\0",30);
иначе иф(бтн_вал2==2)
сис_врите_вп(0к3060," \0\0",30);
иначе иф(бтн_вал2==3)
сис_врите_вп(0к3060,"ОдважанЦрвени\0\0",30);
олд_вал = бтн_вал2;
}
Време поста: 31.10.2023