[Icala eliwine umklomelo] Uhlelo Lokulawula Ukudla Kwekati Elihlakaniphile

——Kusuka ku-DWIN Developer Forum

Kulolu shicilelo, sizokwethula icala lomthombo ovulekile eliwine umklomelo elivela ku-DWIN Developer Forum: Intelligent Cat Food Control System.Onjiniyela basebenzise isikrini esihlakaniphile se-DWIN ukuqapha izinga lokushisa, umswakama, nenani elisele lokudla kwekati, kanye nokulondoloza amarekhodi okudla kokudla kwekati.Baphinde baklama ngokukhethekile isethi ye-UI yesitayela sokudweba uyinki, kanye nomthelela wokuchofoza uyinki lapho uthintwa umunwe, ukuze kuthuthukiswe umbono obonakalayo wempendulo yokuthinta.

Isingeniso:

1.UI impahla yesithombe

Isikrini esihlakaniphile se-DWIN siqedela ukuthuthukiswa kwe-UI ngokusekelwe ezithombeni, umsindo nezinye izinto ezidingekayo kudinga ukulungiswa kusenesikhathi ngokuya ngokuqukethwe kwesibonisi sesikrini.

i-asv (2)

2.Ukuthuthukiswa kwesixhumi esibonakalayo

Isofthiwe ye-DGUS ibuyisela umphumela we-UI ngembondela yesendlalelo, ihlanganisa izinto ezilungisiwe zibe isithombe esiphelele kusofthiwe ye-DGUS, futhi isetha imisebenzi yokubonisa nokuthinta.

i-asv (1)

3. Sebenzisa imiphumela yokuchofoza nemisindo

Indawo yokuthinta itholakala ngohlelo lwe-51, umphumela wokucindezela ulandela ukunyakaza komunwe, kanye nomphumela womsindo ohambisana nokhiye nawo ufinyelelwe.

(1) Thola ikhodi yendawo yokuthinta bese udlala umsindo:

i-void TouchDetect()

{

    u16 Va[3] = 0;

    u8 i = 0;

 

    okwe(i = 0;i <3;i++)

    {

        Va[i] = Read_Dgus(0x0016 + i);

        uma(Va[0] == 0x5A01)

        {

        }

        okunye

        {

            ikhefu;

        }

    }

    uma(i != 0) //Chofoza kuqala ukuze ungene

    {

        u16 play[2] = {0x0001, 0x4000};

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va[1];

        touchPosY = Va[2];

        bhala_dgus_vp(0x00A0, dlala, 2);

    }

}

 

(2) Ikhodi yokubonisa umphumela wokuthinta imi kanje:

i-TouchStart engenalutho()

{

    uma(touchAnimationFlag == 1)

    {

        uma(touchAnimationCnt == 0)

        {

            Bhala_Dgus(0x5011, touchPosX - 100);

            Bhala_Dgus(0x5012, touchPosY - 100);

        }

 

        Bhala_Dgus(0x5000, touchAnimationCnt);

        touchAnimationCnt++;

 

        uma(touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Bhala_Dgus(0x5011, 1024);

            Bhala_Dgus(0x5012, 600);

        }

    }

    

}

 

4. Isinyathelo esilandelayo ukusetha amapharamitha ahambisanayo esikrinini, bese udlulisela idatha kusilawuli sokudla kwekati nge-ESP32 ukuze ubone umsebenzi wokuphakela ngokuzenzakalelayo wokudla kwekati.Ikhodi ethize imi kanje:

//Thola isimo senkinobho

thola_isimo_sokhiye_ongenalutho()

{

    int i = 0;

    //u16 Va=Read_Dgus(addr);

    u16 Va=Read_Dgus(0x1000);

    uma(Va != 0x0000)

    {

        //Sikhasi le-tatus

        uma(Va == 0x0103) //Beka inombolo ye-g

        {

            u16 switchpage[2] = {0x5A01, 19};

            setNum = indawoGramNum;

            Ikhasi elingemuva = 1;//Buyela ekhasini lesimo

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

        }

        okunye uma(Va == 0x0102)

        {

            I-OneSendData3(indawo yeGramNum);//Indawoukudla kwekatikanye

        }

        okunye uma(Va == 0x0101) //Ikhasi lokusetha

        {

            u16 switchpage[2] = {0x5A01, 3};

            okwe(i = 0;i <6;i++)

            {

                uma(i == 0)

                {

                    Write_Dgus(0x3070 + i * 0x10 + 0, currentTime[i] % 10);

                    Write_Dgus(0x3070 + i * 0x10 + 2, currentTime[i] / 10 % 10);

                    Write_Dgus(0x3070 + i * 0x10 + 4, currentTime[i] / 100 % 10);

                    Write_Dgus(0x3070 + i * 0x10 + 6, currentTime[i] / 1000 % 10);

                }

                okunye

                {

                    Write_Dgus(0x3070 + i * 0x10 + 0, currentTime[i] % 10);

                    Write_Dgus(0x3070 + i * 0x10 + 2, currentTime[i] / 10 % 10);

                }

            }

            write_dgus_vp(0x0084, switchpage, 2);//Faka ikhasi lezilungiselelo

        }

        okunye uma (Va == 0x0100) //Rikhasi lerekhodi

        {

            u16 switchpage[2] = {0x5A01, 2};

            okwe(i = 0;i <6;i++)

            {

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

                }

                okunye

                {

                    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);//Faka ikhasi lokurekhoda

        }

        //Rikhasi lerekhodi

        okunye uma(Va == 0x0201) //Rekhoda ikhasi elidlule

        {

            if(lookEatCnt > 0)

            {

                lookEatCnt--;

                okwe(i = 0;i <6;i++)

                {

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

                    }

                    okunye

                    {

                        Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);

                        Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);

                    }

                }

            }

        }

        okunye uma(Va == 0x0202) //Rekhoda ikhasi elilandelayo

        {

            if(lookEatCnt < eatCnt - 1)

            {

                lookEatCnt++;

                okwe(i = 0;i <6;i++)

                {

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

                    }

                    okunye

                    {

                        Write_Dgus(0x2000 + i * 0x10 + 0, eatFeedList[lookEatCnt][i] % 10);

                        Write_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);

                    }

                }

            }

        }

        //Ikhasi lokusetha

        okunye uma(Va == 0x0302)

        {

            uma(imodi yesikhathi == 1)

            {

                imodi yesikhathi = 0;

                Bhala_Dgus(0x3A12, 139);

            }

        }

        okunye uma(Va == 0x0303)

        {

            uma(imodi yesikhathi == 0)

            {

                imodi yesikhathi = 1;

                Bhala_Dgus(0x3A12, 242);

            }

        }

        okunye uma(Va >= 0x0304 && Va <= 0x0309)

        {

            u16 switchpage[2] = {0x5A01, 19};

            Ikhasi elingemuva = 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);

        }

        okunye uma(Va >= 0x030A && Va <= 0x030F)

        {

            u16 switchpage[2] = {0x5A01, 19};

            Ikhasi elingemuva = 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 ikhasi ledatha

        okunye uma(Va == 0x0400) //Qinisekisa

        {

            i-u16 switchpage[2] = {0x5A01, 0x0000};

            switchpage[1] =backPage;

            if(backPage == 1) //Buyela ekhasini lesimo

            {

                placeGramNum = setNum;

                Bhala_Dgus(0x1140 + 0, indawoGramNum % 10);

                Bhala_Dgus(0x1140 + 2, indawoGramNum / 10 % 10);

            }

            okunye uma(ikhasi elingemuva == 3)

            {

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

                }

                okunye uma(backNum >= 0x030A && backNum <= 0x030F)

                {

                    u16 khetha = 0;

                    khetha = (backNum - 0x0304) * 0x10;

                    currentTime[backNum - 0x030A] = setNum;

                    

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

                    }

                    okunye

                    {

                        Bhala_Dgus(0x3010 + khetha + 0, setNum % 10);

                        Bhala_Dgus(0x3010 + khetha + 2, setNum / 10 % 10);

                    }

                }

            }

            write_dgus_vp(0x0084, switchpage, 2);

        }

        okunye uma(Va == 0x0401) //Emuva

        {

            i-u16 switchpage[2] = {0x5A01, 0x0000};

            switchpage[1] =backPage;

            write_dgus_vp(0x0084, switchpage, 2);

        }

        okunye uma(Va == 0x0402) //ukwenyuka kwezinombolo

        {

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

        }

        okunye uma(Va == 0x0403) //ukuncipha kwezinombolo

        {

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

    }

}


Isikhathi sokuthumela: Sep-19-2023