[Urubanza rwatsindiye ibihembo] Sisitemu yo kugenzura ibiryo byubwenge

—— Kuva kuri Forum ya DWIN Iterambere

Muri iki kibazo, tuzabagezaho ibihembo byatsindiye isoko yatanzwe kuva Ihuriro ryabashinzwe iterambere rya DWIN: Sisitemu yo kugenzura ibiryo byinjangwe.Ba injeniyeri bakoresheje ecran yubwenge ya DWIN kugirango bakurikirane ubushyuhe, ubushuhe, n’ibisigaye by’ibiribwa by’injangwe, no kubika ibyo kurya by’injangwe.Bateguye kandi bidasanzwe uburyo bwo gushushanya wino yo gushushanya UI, kimwe ningaruka yo gukanda wino iyo ikozweho nurutoki, kugirango bongere imyumvire yibitekerezo byo gukoraho.

Iriburiro:

1.UI ibikoresho byamashusho

Mugaragaza ubwenge bwa DWIN irangiza iterambere rya UI ishingiye kumashusho, amajwi nibindi bikoresho bigomba gutegurwa hakiri kare ukurikije ibiyerekana.

asv (2)

2.Iterambere ryimiterere

Porogaramu ya DGUS igarura ingaruka za UI binyuze murwego rwo hejuru, igahuza ibikoresho byateguwe mumashusho yuzuye muri software ya DGUS, ikanashyiraho ibikorwa byo gukora no gukoraho.

asv (1)

3. Shyira mubikorwa gukanda n'ingaruka zamajwi

Umwanya wo gukoraho uboneka binyuze muri porogaramu 51, ingaruka zo gukanda zikurikira kugenda kwintoki, kandi urufunguzo rwoherekeza amajwi narwo rugerwaho.

(1) Menya kode yo gukoraho kandi ukine amajwi:

Ubusa TouchDetect ()

{

    u16 Va [3] = 0;

    u8 i = 0;

 

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

    {

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

        niba (Va [0] == 0x5A01)

        {

        }

        ikindi

        {

            kumena;

        }

    }

    niba (i! = 0) // Banza ukande kugirango winjire

    {

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

        gukorahoAnimationFlag = 1;

        gukorahoAnimationCnt = 0;

        gukorahoPosX = Va [1];

        gukorahoPosY = Va [2];

        andika_dgus_vp (0x00A0, gukina, 2);

    }

}

 

(2) Kode yo gukoraho ingaruka zerekana niyi ikurikira:

Ubusa TouchStart ()

{

    niba (gukorahoAnimationFlag == 1)

    {

        niba (gukorahoAnimationCnt == 0)

        {

            Andika_Dgus (0x5011, gukorahoPosX - 100);

            Andika_Dgus (0x5012, gukorahoPosY - 100);

        }

 

        Andika_Dgus (0x5000, gukorahoAnimationCnt);

        gukorahoAnimationCnt ++;

 

        niba (gukorahoAnimationCnt == 6)

        {

            gukorahoAnimationFlag = 0;

            Andika_Dgus (0x5011, 1024);

            Andika_Dgus (0x5012, 600);

        }

    }

    

}

 

4. Intambwe ikurikiraho ni ugushiraho ibipimo bihuye ukoresheje ecran, hanyuma wohereze amakuru kumugenzuzi wibiryo byinjangwe binyuze muri ESP32 kugirango umenye imikorere yo kugaburira byikora ibiryo byinjangwe.Kode yihariye niyi ikurikira:

// Kubona buto imiterere

Kubona ubusa_key_status ()

{

    int i = 0;

    // u16 Va = Soma_Dgus (addr);

    u16 Va = Soma_Dgus (0x1000);

    niba (Va! = 0x0000)

    {

        //Surupapuro rwa tatus

        niba (Va == 0x0103) // Shyira umubare wa g

        {

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

            setNum = umwanyaGramNum;

            inyumaPage = 1;// Garuka kurupapuro rwimiterere

            Andika_Dgus (0x4000 + 0, shirahoNum% 10);

            Andika_Dgus (0x4000 + 2, setNum / 10% 10);

            Andika_Dgus (0x4000 + 4, setNum / 100% 10);

            Andika_Dgus (0x4000 + 6, setNum / 1000% 10);

            andika_dgus_vp (0x0084, switchpage, 2);

        }

        ikindi niba (Va == 0x0102)

        {

            OneSendData3 (umwanyaGramNum);//Ikibanzaibiryo by'injangwerimwe

        }

        ikindi niba (Va == 0x0101) // Gushiraho page

        {

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

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

            {

                niba (i == 0)

                {

                    Andika_Dgus (0x3070 + i * 0x10 + 0, Igihe cyigihe [i]% 10);

                    Andika_Dgus (0x3070 + i * 0x10 + 2, Igihe cyigihe [i] / 10% 10);

                    Andika_Dgus (0x3070 + i * 0x10 + 4, Igihe cyigihe [i] / 100% 10);

                    Andika_Dgus (0x3070 + i * 0x10 + 6, Igihe cyigihe [i] / 1000% 10);

                }

                ikindi

                {

                    Andika_Dgus (0x3070 + i * 0x10 + 0, Igihe cyigihe [i]% 10);

                    Andika_Dgus (0x3070 + i * 0x10 + 2, Igihe cyigihe [i] / 10% 10);

                }

            }

            andika_dgus_vp (0x0084, switchpage, 2);// Injira urupapuro rwimiterere

        }

        ikindi niba (Va == 0x0100) //Rurupapuro rwa ecord

        {

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

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

            {

                niba (i == 0)

                {

                    Andika_Dgus (0x2000 + i * 0x10 + 0, kurya Urutonde [0] [i]% 10);

                    Andika_Dgus (0x2000 + i * 0x10 + 2, kurya Urutonde [0] [i] / 10% 10);

                    Andika_Dgus (0x2000 + i * 0x10 + 4, kurya Urutonde [0] [i] / 100% 10);

                    Andika_Dgus (0x2000 + i * 0x10 + 6, kurya Urutonde [0] [i] / 1000% 10);

                }

                ikindi

                {

                    Andika_Dgus (0x2000 + i * 0x10 + 0, kurya Urutonde [0] [i]% 10);

                    Andika_Dgus (0x2000 + i * 0x10 + 2, kurya Urutonde [0] [i] / 10% 10);

                }

            }

            andika_dgus_vp (0x0084, switchpage, 2);// Injira urupapuro rwanditse

        }

        //Rurupapuro rwa ecord

        ikindi niba (Va == 0x0201) // Andika page page ibanza

        {

            niba (rebaEatCnt> 0)

            {

                RebaCat--;

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

                {

                    niba (i == 0)

                    {

                        Andika_Dgus (0x2000 + i * 0x10 + 0, urye Urutonde [rebaEatCnt] [i]% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 2, kuryaUrutonde [rebaEatCnt] [i] / 10% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 4, kurya Urutonde rwihuta [rebaEatCnt] [i] / 100% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 6, kuryaUrutonde [rebaEatCnt] [i] / 1000% 10);

                    }

                    ikindi

                    {

                        Andika_Dgus (0x2000 + i * 0x10 + 0, urye Urutonde [rebaEatCnt] [i]% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 2, kuryaUrutonde [rebaEatCnt] [i] / 10% 10);

                    }

                }

            }

        }

        ikindi niba (Va == 0x0202) // Andika urupapuro rukurikira

        {

            niba (rebaEatCnt <kuryaCnt - 1)

            {

                RebaEatCnt ++;

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

                {

                    niba (i == 0)

                    {

                        Andika_Dgus (0x2000 + i * 0x10 + 0, urye Urutonde [rebaEatCnt] [i]% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 2, kuryaUrutonde [rebaEatCnt] [i] / 10% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 4, kurya Urutonde rwihuta [rebaEatCnt] [i] / 100% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 6, kuryaUrutonde [rebaEatCnt] [i] / 1000% 10);

                    }

                    ikindi

                    {

                        Andika_Dgus (0x2000 + i * 0x10 + 0, urye Urutonde [rebaEatCnt] [i]% 10);

                        Andika_Dgus (0x2000 + i * 0x10 + 2, kuryaUrutonde [rebaEatCnt] [i] / 10% 10);

                    }

                }

            }

        }

        // Gushiraho urupapuro

        ikindi niba (Va == 0x0302)

        {

            niba (igiheMode == 1)

            {

                igiheMode = 0;

                Andika_Dgus (0x3A12, 139);

            }

        }

        ikindi niba (Va == 0x0303)

        {

            niba (igiheMode == 0)

            {

                igiheMode = 1;

                Andika_Dgus (0x3A12, 242);

            }

        }

        ikindi niba (Va> = 0x0304 && Va <= 0x0309)

        {

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

            inyumaPage = 3;

            inyumaNum = Va;

            setNum = timrIntervalHour [Va - 0x0304];

            Andika_Dgus (0x4000 + 0, shirahoNum% 10);

            Andika_Dgus (0x4000 + 2, setNum / 10% 10);

            Andika_Dgus (0x4000 + 4, setNum / 100% 10);

            Andika_Dgus (0x4000 + 6, setNum / 1000% 10);

            andika_dgus_vp (0x0084, switchpage, 2);

        }

        ikindi niba (Va> = 0x030A && Va <= 0x030F)

        {

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

            inyumaPage = 3;

            inyumaNum = Va;

            setNum = Igihe cyigihe [Va - 0x030A];

            Andika_Dgus (0x4000 + 0, shirahoNum% 10);

            Andika_Dgus (0x4000 + 2, setNum / 10% 10);

            Andika_Dgus (0x4000 + 4, setNum / 100% 10);

            Andika_Dgus (0x4000 + 6, setNum / 1000% 10);

            andika_dgus_vp (0x0084, switchpage, 2);

        }

        //Aurupapuro rwamakuru

        ikindi niba (Va == 0x0400) //Emeza

        {

            u16 guhinduranya [2] = {0x5A01, 0x0000};

            guhinduranya [1] = urupapuro rwinyuma;

            niba (inyumaPage == 1) // Garuka kurupapuro rwimiterere

            {

                umwanyaGramNum = setNum;

                Andika_Dgus (0x1140 + 0, umwanyaGramNum% 10);

                Andika_Dgus (0x1140 + 2, umwanyaGramNum / 10% 10);

            }

            ikindi niba (inyumaPage == 3)

            {

                niba (inyumaNum> = 0x0304 && inyumaNum <= 0x0309)

                {

                    u16 hitamo = 0;

                    hitamo = (inyumaNum - 0x0304) * 0x10;

                    timrIntervalHour [backNum - 0x0304] = setNum;

                    Andika_Dgus (0x3010 + hitamo + 0, shirahoNum% 10);

                    Andika_Dgus (0x3010 + hitamo + 2, shirahoNum / 10% 10);

                }

                ikindi niba (inyumaNum> = 0x030A && inyumaNum <= 0x030F)

                {

                    u16 hitamo = 0;

                    hitamo = (inyumaNum - 0x0304) * 0x10;

                    Igihe cyubu [inyumaNum - 0x030A] = setNum;

                    

                    niba (inyumaNum == 0x030A)

                    {

                        Andika_Dgus (0x3010 + hitamo + 0, shirahoNum% 10);

                        Andika_Dgus (0x3010 + hitamo + 2, shirahoNum / 10% 10);

                        Andika_Dgus (0x3010 + hitamo + 4, shirahoNum / 100% 10);

                        Andika_Dgus (0x3010 + hitamo + 6, shirahoNum / 1000% 10);

                    }

                    ikindi

                    {

                        Andika_Dgus (0x3010 + hitamo + 0, shirahoNum% 10);

                        Andika_Dgus (0x3010 + hitamo + 2, shirahoNum / 10% 10);

                    }

                }

            }

            andika_dgus_vp (0x0084, switchpage, 2);

        }

        ikindi niba (Va == 0x0401) //Inyuma

        {

            u16 guhinduranya [2] = {0x5A01, 0x0000};

            guhinduranya [1] = urupapuro rwinyuma;

            andika_dgus_vp (0x0084, switchpage, 2);

        }

        ikindi niba (Va == 0x0402) // Kwiyongera k'umubare

        {

            setNum ++;

            Andika_Dgus (0x4000 + 0, shirahoNum% 10);

            Andika_Dgus (0x4000 + 2, setNum / 10% 10);

            Andika_Dgus (0x4000 + 4, setNum / 100% 10);

            Andika_Dgus (0x4000 + 6, setNum / 1000% 10);

        }

        ikindi niba (Va == 0x0403) // Kugabanuka k'umubare

        {

            niba (setNum> 0)

                setNum--;

            Andika_Dgus (0x4000 + 0, shirahoNum% 10);

            Andika_Dgus (0x4000 + 2, setNum / 10% 10);

            Andika_Dgus (0x4000 + 4, setNum / 100% 10);

            Andika_Dgus (0x4000 + 6, setNum / 1000% 10);

        }

        

        Andika_Dgus (0x1000, 0);

    }

}


Igihe cyo kohereza: Nzeri-19-2023