——Ukusuka kwiQonga labaphuhlisi be-DWIN
Kulo shicilelo, siza kukwazisa ngembasa yomthombo ovulekileyo wetyala elivela kwiQonga loMphuhlisi le-DWIN: Inkqubo yoLawulo loKutya kweKati enoBukrelekrele.Iinjineli zasebenzisa i-DWIN smart screen ukujonga ubushushu, ukufuma, kunye nenani eliseleyo lokutya kwekati, kunye nokugcina iirekhodi zokutya kokutya kwekati.Baphinde bayila ngokukodwa iseti ye-inki yokupeyinta isitayile se-UI, kunye nesiphumo sokucofa i-inki xa uchukunyiswa ngomnwe, ukomeleza umbono obonakalayo wempendulo yokuchukumisa.
Intshayelelo:
1.UI imathiriyeli yomfanekiso
Isikrini esilumkileyo se-DWIN sigqibezela uphuhliso lwe-UI olusekwe kwimifanekiso, iaudio kunye nezinye izixhobo kufuneka zilungiswe kwangaphambili ngokomxholo wokubonisa isikrini.
2.Uphuhliso lwe-interface
I-software ye-DGUS ibuyisela umphumo we-UI ngokusebenzisa i-layer overlay, idibanisa izinto ezilungiselelwe kumfanekiso opheleleyo kwi-software ye-DGUS, kwaye ibeka imisebenzi yokubonisa kunye nokuchukumisa.
3. Sebenzisa iziphumo zokucofa kunye neziphumo zesandi
Isikhundla sokuchukumisa sifunyenwe ngeprogram ye-51, umphumo wokucinezela ulandela ukunyakaza komnwe, kunye nesiphumo esibalulekileyo sokuhambelana nesandi sifunyenwe.
(1) Khangela ikhowudi yendawo yokuchukumisa kwaye udlale isandi:
i-void TouchDetect ()
{
u16 Va[3] = 0;
u8 i = 0;
ye(i = 0;i <3;i++)
{
Va[i] = Funda_Dgus(0x0016 + i);
ukuba(Va[0] == 0x5A01)
{
}
enye into
{
ikhefu;
}
}
ukuba(i!= 0) //Qala ngokucofa ukungena
{
u16 dlala[2] = {0x0001, 0x4000};
touchAnimationFlag = 1;
touchAnimationCnt = 0;
touchPosX = Va[1];
touchPosY = Va[2];
bhala_dgus_vp (0x00A0, dlala, 2);
}
}
(2) Ikhowudi yokubonisa isiphumo sokuchukumisa imi ngolu hlobo lulandelayo:
elingenanto TouchStart()
{
ukuba(touchAnimationFlag == 1)
{
ukuba(touchAnimationCnt == 0)
{
Bhala_Dgus(0x5011, touchPosX - 100);
Bhala_Dgus(0x5012, touchPosY - 100);
}
Bhala_Dgus(0x5000, touchAnimationCnt);
touchAnimationCnt++;
ukuba(touchAnimationCnt == 6)
{
touchAnimationFlag = 0;
Bhala_Dgus(0x5011, 1024);
Bhala_Dgus(0x5012, 600);
}
}
}
4. Isinyathelo esilandelayo kukuseta iiparamitha ezihambelanayo ngesikrini, kwaye emva koko uthumele idatha kwisilawuli sokutya kwekati nge-ESP32 ukuqonda umsebenzi wokutya okuzenzekelayo kokutya kwekati.Ikhowudi ethile yile ilandelayo:
//Fumana ubume beqhosha
fumana_isitshixo_isimo ()
{
int i = 0;
//u16 Va=Read_Dgus(addr);
u16 Va=Funda_Dgus(0x1000);
ukuba(Va != 0x0000)
{
//Siphepha lesithathu
ukuba(Va == 0x0103) //Beka inani le-g
{
u16 switchpage [2] = {0x5A01, 19};
setNum = indawoGramNum;
Iphepha elingasemva = 1;//Buyela kwiphepha lobume
Bhala_Dgus(0x4000 + 0, setNum % 10);
Bhala_Dgus(0x4000 + 2, setNum / 10 % 10);
Bhala_Dgus(0x4000 + 4, setNum / 100 % 10);
Bhala_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp (0x0084, switchpage, 2);
}
ngenye indlela ukuba(Va == 0x0102)
{
OneSendData3(placeGramNum);//Indawoukutya kwekatiKanye
}
ngenye indlela ukuba(Va == 0x0101) //Ukuseta iphepha
{
u16 switchpage[2] = {0x5A01, 3};
ye(i = 0;i <6;i++)
{
ukuba(i == 0)
{
Bhala_Dgus(0x3070 + i * 0x10 + 0, ixesha langoku[i] % 10);
Bhala_Dgus(0x3070 + i * 0x10 + 2, ixesha langoku[i] / 10 % 10);
Bhala_Dgus(0x3070 + i * 0x10 + 4, ixesha langoku[i] / 100 % 10);
Bhala_Dgus(0x3070 + i * 0x10 + 6, ixesha langoku[i] / 1000 % 10);
}
enye into
{
Bhala_Dgus(0x3070 + i * 0x10 + 0, ixesha langoku[i] % 10);
Bhala_Dgus(0x3070 + i * 0x10 + 2, ixesha langoku[i] / 10 % 10);
}
}
write_dgus_vp (0x0084, switchpage, 2);//Ngenisa iphepha leseto
}
ngenye indlela ukuba(Va == 0x0100) //Riphepha lerekhodi
{
u16 switchpage [2] = {0x5A01, 2};
ye(i = 0;i <6;i++)
{
ukuba(i == 0)
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[0][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[0][i] / 10 % 10);
Write_Dgus(0x2000 + i * 0x10 + 4, eatFeedList[0][i] / 100 % 10);
Write_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[0][i] / 1000 % 10);
}
enye into
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[0][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[0][i] / 10 % 10);
}
}
write_dgus_vp (0x0084, switchpage, 2);//Ngenisa iphepha lokurekhoda
}
//Riphepha lerekhodi
ngenye indlela ukuba(Va == 0x0201) //Rekhoda iphepha langaphambili
{
ukuba(jongaEatCnt > 0)
{
lookEatCnt--;
ye(i = 0;i <6;i++)
{
ukuba(i == 0)
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
Write_Dgus(0x2000 + i * 0x10 + 4, eatFeedList[lookEatCnt][i] / 100 % 10);
Write_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
enye into
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
ngenye indlela ukuba(Va == 0x0202) //Rekhoda iphepha elilandelayo
{
ukuba(jongaEatCnt < eadlaCnt - 1)
{
lookEatCnt++;
ye(i = 0;i <6;i++)
{
ukuba(i == 0)
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
Write_Dgus(0x2000 + i * 0x10 + 4, eatFeedList[lookEatCnt][i] / 100 % 10);
Write_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
enye into
{
Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);
Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
//Ukuseta iphepha
ngenye indlela ukuba(Va == 0x0302)
{
ukuba(indlela yexesha == 1)
{
indlela yexesha = 0;
Bhala_Dgus(0x3A12, 139);
}
}
ngenye indlela ukuba(Va == 0x0303)
{
ukuba(indlela yexesha == 0)
{
indlela yexesha = 1;
Bhala_Dgus(0x3A12, 242);
}
}
ngenye indlela ukuba(Va >= 0x0304 && Va <= 0x0309)
{
u16 switchpage [2] = {0x5A01, 19};
Iphepha elingasemva = 3;
backNum = Va;
setNum = timrIntervalHour[Va - 0x0304];
Bhala_Dgus(0x4000 + 0, setNum % 10);
Bhala_Dgus(0x4000 + 2, setNum / 10 % 10);
Bhala_Dgus(0x4000 + 4, setNum / 100 % 10);
Bhala_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp (0x0084, switchpage, 2);
}
ngenye indlela ukuba(Va >= 0x030A && Va <= 0x030F)
{
u16 switchpage [2] = {0x5A01, 19};
Iphepha elingasemva = 3;
backNum = Va;
setNum = currentTime[Va - 0x030A];
Bhala_Dgus(0x4000 + 0, setNum % 10);
Bhala_Dgus(0x4000 + 2, setNum / 10 % 10);
Bhala_Dgus(0x4000 + 4, setNum / 100 % 10);
Bhala_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp (0x0084, switchpage, 2);
}
//Alungisa iphepha ledatha
ngenye indlela ukuba(Va == 0x0400) //Qinisekisa
{
u16 switchpage[2] = {0x5A01, 0x0000};
iphepha lokutshintsha[1] = Iphepha elingasemva;
ukuba (Iphepha elingasemva == 1) //Buyela kwiphepha lesimo
{
placeGramNum = setNum;
Bhala_Dgus(0x1140 + 0, indawoGramNum % 10);
Bhala_Dgus(0x1140 + 2, indawoGramNum / 10 % 10);
}
ngenye indlela ukuba(Iphepha elingasemva == 3)
{
ukuba(backNum >= 0x0304 && backNum <= 0x0309)
{
u16 khetha = 0;
khetha = (backNum - 0x0304) * 0x10;
timrIntervalHour[backNum - 0x0304] = setNum;
Bhala_Dgus (0x3010 + khetha + 0, setNum % 10);
Bhala_Dgus (0x3010 + khetha + 2, setNum / 10 % 10);
}
ngenye indlela ukuba(backNum >= 0x030A && backNum <= 0x030F)
{
u16 khetha = 0;
khetha = (backNum - 0x0304) * 0x10;
currentTime[backNum - 0x030A] = setNum;
ukuba(backNum == 0x030A)
{
Bhala_Dgus (0x3010 + khetha + 0, setNum % 10);
Bhala_Dgus (0x3010 + khetha + 2, setNum / 10 % 10);
Bhala_Dgus (0x3010 + khetha + 4, setNum / 100 % 10);
Bhala_Dgus (0x3010 + khetha + 6, setNum / 1000 % 10);
}
enye into
{
Bhala_Dgus (0x3010 + khetha + 0, setNum % 10);
Bhala_Dgus (0x3010 + khetha + 2, setNum / 10 % 10);
}
}
}
write_dgus_vp (0x0084, switchpage, 2);
}
ngenye indlela ukuba(Va == 0x0401) //Emva
{
u16 switchpage[2] = {0x5A01, 0x0000};
iphepha lokutshintsha[1] = Iphepha elingasemva;
write_dgus_vp (0x0084, switchpage, 2);
}
ngenye indlela ukuba(Va == 0x0402) //Ukwanda kwamanani
{
setNum++;
Bhala_Dgus(0x4000 + 0, setNum % 10);
Bhala_Dgus(0x4000 + 2, setNum / 10 % 10);
Bhala_Dgus(0x4000 + 4, setNum / 100 % 10);
Bhala_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
ngenye indlela ukuba(Va == 0x0403) //ukuncipha kwamanani
{
ukuba(setNum> 0)
setNum--;
Bhala_Dgus(0x4000 + 0, setNum % 10);
Bhala_Dgus(0x4000 + 2, setNum / 10 % 10);
Bhala_Dgus(0x4000 + 4, setNum / 100 % 10);
Bhala_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
Bhala_Dgus(0x1000, 0);
}
}
Ixesha lokuposa: Sep-19-2023