[Award-winning case] Intelligent Cat Food Control System

--From DWIN Developer Forum

In hac re dabimus tibi praebendam praebendam apertam fontem causam e DWIN Developer Forum: Intelligent Cat Cibus Control System.Machinarii DWIN tegumentum captiosum ad Monitor temperatura, humiditatem, et reliquam quantitatem cibi catti adhibebant, et ad conservandum cibum cattus edendi tabulas.Etiam singulariter designaverunt atramenti modum pingendi styli UI, ac effectum cliccum atramenti tactum digito, ut sensus tactus feedback augeret.

Introductio:

1.UI imaginem materiales

DWIN captiosus screen complet UI progressionem in imaginibus, audio et aliis materiis opus est in antecessum secundum screen ostentationis contentum.

asv (2)

2.Interface evolutionis

Software DGUS effectum UI per stratum obductum restaurat, materias paratas in picturam perfectam in programmate DGUS componit et munera ostentationem tactumque ponit.

asv (1)

3. Implement click effectus et sonus effectus

Tactus positio per 51 rationem obtinetur, effectus pressus motum digiti sequitur, et clavis consequitur sonum effectum.

(1) Deprehendere locum codicem tangere et ludere audio;

inanis TouchDetect ()

{

    u16 Va[3] = 0;

    u8 i = 0;

 

    nam (i = 0; i <III, i +)

    {

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

        si(Va[0] == 0x5A01)

        {

        }

        aliud

        {

            frangere;

        }

    }

    si(i != 0) // Primum click intrare

    {

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

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va[1];

        touchPosY = Va[2];

        scribe_dgus_vp(0x00A0, fabula, 2);

    }

}

 

(2) Codex ad effectum tactum propono talis est:

inanis TouchStart ()

{

    si (touchAnimationFlag == I)

    {

        if(touchAnimationCnt==0)

        {

            Write_Dgus(0x5011, touchPosX - 100);

            Write_Dgus(0x5012, touchPosY - 100);

        }

 

        Write_Dgus(0x5000, touchAnimationCnt);

        touchAnimationCnt++;

 

        if(touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Write_Dgus(0x5011, 1024);

            Write_Dgus(0x5012, 600);

        }

    }

    

}

 

4. Proximum est parametros correspondentes per velum ponere, et deinde per ESP32 datas tradere ad moderatorem cibum cattum ut cognoscat functionem fel fel cibationis latae sententiae.In codice specifico talis est:

// Get button status

inanis get_key_status ()

{

    int i = 0;

    //u16 Va=Read_Dgus(addr);

    u16 Va=Read_Dgus(0x1000);

    if(Va != 0x0000)

    {

        //Status page

        if(Va == 0x0103) // Pone numerum g

        {

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

            setNum = placeGramNum;

            backPage = 1;//Redi ad statum paginae

            Write_Dgus(0x4000 + 0, setNum % 10);

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

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

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

            write_dgus_vp(0x0084, switchpage, 2);

        }

        aliud si (Va == 0x0102)

        {

            OneSendData3(placeGramNum);//Placecat cibumsemel

        }

        aliud si(Va == 0x0101) // Profecti pagina

        {

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

            nam (i = 0; i <VI, i ++)

            {

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

                }

                aliud

                {

                    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);// Intra ad occasus paginam

        }

        sin autem (Va == 0x0100) //Record pagina

        {

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

            nam (i = 0; i <VI, i ++)

            {

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

                }

                aliud

                {

                    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);//Intra record pagina

        }

        //Record pagina

        aliud si(Va == 0x0201) //Record page previous page

        {

            si (lookEatCnt> 0)

            {

                lookEatCnt--;

                nam (i = 0; i <VI, i ++)

                {

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

                    }

                    aliud

                    {

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

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

                    }

                }

            }

        }

        sin(Va == 0x0202) //Record page next page

        {

            if(lookEatCnt<eatCnt - 1)

            {

                lookEatCnt++;

                nam (i = 0; i <VI, i ++)

                {

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

                    }

                    aliud

                    {

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

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

                    }

                }

            }

        }

        // Profecta pagina

        aliud si (Va == 0x0302)

        {

            si (timeMode == I)

            {

                timeMode = 0;

                Write_Dgus(0x3A12, 139);

            }

        }

        alium, si (Va == 0x0303)

        {

            si (timeMode == 0)

            {

                timeMode = 1;

                Write_Dgus(0x3A12, 242);

            }

        }

        sin (Va >= 0x0304 && Va <= 0x0309)

        {

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

            backPage = 3;

            backNum = Va;

            setNum = timrIntervalHour[Va - 0x0304];

            Write_Dgus(0x4000 + 0, setNum % 10);

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

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

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

            write_dgus_vp(0x0084, switchpage, 2);

        }

        aliud, si(Va>= 0x030A && Va <= 0x030F)

        {

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

            backPage = 3;

            backNum = Va;

            setNum = currentTime[Va - 0x030A];

            Write_Dgus(0x4000 + 0, setNum % 10);

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

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

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

            write_dgus_vp(0x0084, switchpage, 2);

        }

        //Adjust data pagina

        aut si (Va == 0x0400) //Confirm

        {

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

            switchpage[1] = backPage;

            if(backPage == 1) //Redi to status page

            {

                placeGramNum = setNum;

                Write_Dgus(0x1140 + 0, placeGramNum % 10);

                Write_Dgus(0x1140 + 2, placeGramNum / 10 % 10);

            }

            si aliud (backPage == III)

            {

                if(backNum>= 0x0304 && backNum <= 0x0309)

                {

                    u16 = 0;

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

                    timrIntervalHour[backNum - 0x0304] = setNum;

                    Write_Dgus(0x3010 + select + 0, setNum % 10);

                    Write_Dgus(0x3010 + select + 2, setNum / 10 % 10);

                }

                sin(backNum>= 0x030A && backNum <= 0x030F)

                {

                    u16 = 0;

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

                    currentTime[backNum - 0x030A] = setNum;

                    

                    sin(backNum == 0x030A)

                    {

                        Write_Dgus(0x3010 + select + 0, setNum % 10);

                        Write_Dgus(0x3010 + select + 2, setNum / 10 % 10);

                        Write_Dgus(0x3010 + select + 4, setNum / 100 % 10);

                        Write_Dgus(0x3010 + select + 6, setNum / 1000 % 10);

                    }

                    aliud

                    {

                        Write_Dgus(0x3010 + select + 0, setNum % 10);

                        Write_Dgus(0x3010 + select + 2, setNum / 10 % 10);

                    }

                }

            }

            write_dgus_vp(0x0084, switchpage, 2);

        }

        aut si(Va == 0x0401) //Retro

        {

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

            switchpage[1] = backPage;

            write_dgus_vp(0x0084, switchpage, 2);

        }

        aut si (Va == 0x0402) // incremento numeralis

        {

            setNum++;

            Write_Dgus(0x4000 + 0, setNum % 10);

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

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

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

        }

        si aliud (Va == 0x0403) // decrementum numeralis

        {

            si (setNum> 0)

                setNum--;

            Write_Dgus(0x4000 + 0, setNum % 10);

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

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

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

        }

        

        Write_Dgus(0x1000, 0);

    }

}


Post tempus: Sep-19-2023