[Harkokin lashe lambar yabo] Tsarin Kula da Abinci na Cat Mai hankali

——Daga Dandalin Masu Haɓaka DWIN

A cikin wannan fitowar, za mu gabatar muku da buɗaɗɗen buɗaɗɗen buɗaɗɗen lambar yabo daga Dandalin Masu Haɓakawa na DWIN: Tsarin Kula da Abinci na Cat masu hankali.Injiniyoyin sun yi amfani da allon wayo na DWIN don lura da yanayin zafi, zafi, da sauran adadin abincin cat, da kuma adana bayanan cin abinci na cat.Sun kuma tsara salo na musamman na salon zanen tawada UI, da kuma tasirin danna tawada lokacin da yatsa ya taɓa shi, don haɓaka hangen nesa na amsa taɓawa.

Gabatarwa:

1.UI hoto kayan

DWIN mai kaifin allo yana kammala ci gaban UI dangane da hotuna, sauti da sauran kayan suna buƙatar shirya a gaba gwargwadon abun ciki na nunin allo.

wata (2)

2.Interface ci gaban

Software na DGUS yana mayar da tasirin UI ta hanyar rufin rufin, yana haɗa kayan da aka shirya zuwa cikakken hoto a cikin software na DGUS, kuma yana saita ayyukan nuni da taɓawa.

asv (1)

3. Aiwatar da tasirin dannawa da tasirin sauti

Matsayin taɓawa yana samuwa ta hanyar shirin 51, tasirin latsawa yana biye da motsi na yatsa, kuma ana samun tasirin sauti na maɓalli.

(1) Gano lambar wurin taɓawa kuma kunna sauti:

Void TouchDetect()

{

    u16 Va[3] = 0;

    u8 i = 0;

 

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

    {

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

        idan (Va[0] = 0x5A01)

        {

        }

        wani

        {

            karya;

        }

    }

    idan (i! = 0) // Danna farko don shigarwa

    {

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

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va[1];

        touchPosY = Va[2];

        rubuta_dgus_vp (0x00A0, wasa, 2);

    }

}

 

(2) Lambar don nunin tasirin taɓawa shine kamar haka:

Void TouchStart()

{

    idan (touchAnimationFlag == 1)

    {

        idan (touchAnimationCnt == 0)

        {

            Rubuta_Dgus (0x5011, touchPosX - 100);

            Rubuta_Dgus (0x5012, touchPosY - 100);

        }

 

        Rubuta_Dgus (0x5000, touchAnimationCnt);

        touchAnimationCnt++;

 

        idan (touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Rubuta_Dgus (0x5011, 1024);

            Rubuta_Dgus (0x5012, 600);

        }

    }

    

}

 

4. Mataki na gaba shine saita sigogi masu dacewa ta hanyar allon, sannan aika bayanai zuwa ga mai kula da abinci ta hanyar ESP32 don gane aikin ciyar da abinci ta atomatik.Takamammen lambar shine kamar haka:

//Samu matsayin maɓalli

banza get_key_status()

{

    int i = 0;

    // u16 Va = Karanta_Dgus(addr);

    u16 Va=Read_Dgus(0x1000);

    idan (Va! = 0x0000)

    {

        //Status page

        idan (Va == 0x0103) // Sanya lambar g

        {

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

            setNum = wuriGramNum;

            Shafi na baya = 1;//Komawa shafin matsayi

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

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

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

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

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);

        }

        idan kuma (Va == 0x0102)

        {

            OneSendData3 (wuriGramNum);//Wuriabinci catsau ɗaya

        }

        idan kuma (Va == 0x0101) // Saita shafi

        {

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

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

            {

                idan ( == 0)

                {

                    Rubuta_Dgus (0x3070 + i * 0x10 + 0, lokaci na yanzu [i]% 10);

                    Rubuta_Dgus (0x3070 + i * 0x10 + 2, halin yanzu lokaci [i] / 10% 10);

                    Rubuta_Dgus (0x3070 + i * 0x10 + 4, halin yanzu lokaci [i] / 100% 10);

                    Rubuta_Dgus (0x3070 + i * 0x10 + 6, halin yanzu lokaci [i] / 1000% 10);

                }

                wani

                {

                    Rubuta_Dgus (0x3070 + i * 0x10 + 0, lokaci na yanzu [i]% 10);

                    Rubuta_Dgus (0x3070 + i * 0x10 + 2, halin yanzu lokaci [i] / 10% 10);

                }

            }

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);// Shigar da shafin saituna

        }

        idan kuma (Va == 0x0100) //Record page

        {

            u16 sauya shafin[2] = {0x5A01, 2};

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

            {

                idan ( == 0)

                {

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

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

                    Rubuta_Dgus (0x2000 + i * 0x10 + 4, eatFeedList[0][i] / 100 % 10);

                    Rubuta_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[0][i] / 1000% 10);

                }

                wani

                {

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

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

                }

            }

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);// Shigar da shafin rikodin

        }

        //Record page

        idan kuma (Va == 0x0201) // Yi rikodin shafi na baya

        {

            idan (dubaEatCnt> 0)

            {

                dubaEatCnt--;

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

                {

                    idan ( == 0)

                    {

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

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

                        Rubuta_Dgus (0x2000 + i * 0x10 + 4, eatFeedList[lookEatCnt][i] / 100 % 10);

                        Rubuta_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000% 10);

                    }

                    wani

                    {

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

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

                    }

                }

            }

        }

        idan kuma (Va == 0x0202) // Yi rikodin shafi na gaba

        {

            idan (dubaEatCnt < eatCnt - 1)

            {

                dubaEatCnt++;

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

                {

                    idan ( == 0)

                    {

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

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

                        Rubuta_Dgus (0x2000 + i * 0x10 + 4, eatFeedList[lookEatCnt][i] / 100 % 10);

                        Rubuta_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000% 10);

                    }

                    wani

                    {

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

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

                    }

                }

            }

        }

        //Shafin saiti

        idan kuma (Va == 0x0302)

        {

            idan (Yanayin lokaci == 1)

            {

                Yanayin lokaci = 0;

                Rubuta_Dgus (0x3A12, 139);

            }

        }

        idan kuma (Va == 0x0303)

        {

            idan (lokacin lokaci = 0)

            {

                Yanayin lokaci = 1;

                Rubuta_Dgus (0x3A12, 242);

            }

        }

        idan kuma (Va>= 0x0304 && Va <= 0x0309)

        {

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

            Shafi na baya = 3;

            backNum = Va;

            setNum = timrIntervalHour [Va - 0x0304];

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

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

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

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

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);

        }

        idan kuma (Va>= 0x030A && Va <= 0x030F)

        {

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

            Shafi na baya = 3;

            backNum = Va;

            setNum = halin yanzu [Va - 0x030A];

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

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

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

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

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);

        }

        //Agyara shafin data

        idan kuma (Va == 0x0400) //Tabbatar

        {

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

            sauya shafi[1] = Shafin baya;

            idan (Shafi na baya == 1) // Komawa shafin matsayi

            {

                placeGramNum = setNum;

                Rubuta_Dgus (0x1140 + 0, wuriGramNum% 10);

                Rubuta_Dgus (0x1140 + 2, wuriGramNum / 10% 10);

            }

            idan kuma (BackPage == 3)

            {

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

                {

                    u16 zaɓi = 0;

                    zaɓi = (backNum - 0x0304) * 0x10;

                    timrIntervalHour[backNum - 0x0304] = setNum;

                    Rubuta_Dgus (0x3010 + zaɓi + 0, setNum% 10);

                    Rubuta_Dgus (0x3010 + zaɓi + 2, setNum / 10% 10);

                }

                idan kuma (backNum>= 0x030A & backNum <= 0x030F)

                {

                    u16 zaɓi = 0;

                    zaɓi = (backNum - 0x0304) * 0x10;

                    currentTime[backNum - 0x030A] = setNum;

                    

                    idan (bayaNum = 0x030A)

                    {

                        Rubuta_Dgus (0x3010 + zaɓi + 0, setNum% 10);

                        Rubuta_Dgus (0x3010 + zaɓi + 2, setNum / 10% 10);

                        Rubuta_Dgus (0x3010 + zaɓi + 4, setNum / 100% 10);

                        Rubuta_Dgus (0x3010 + zaɓi + 6, setNum / 1000% 10);

                    }

                    wani

                    {

                        Rubuta_Dgus (0x3010 + zaɓi + 0, setNum% 10);

                        Rubuta_Dgus (0x3010 + zaɓi + 2, setNum / 10% 10);

                    }

                }

            }

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);

        }

        idan kuma (Va == 0x0401) //Baya

        {

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

            sauya shafi[1] = Shafin baya;

            rubuta_dgus_vp (0x0084, shafi mai canzawa, 2);

        }

        in ba haka ba (Va == 0x0402) // Haɓaka lambobi

        {

            setNum++;

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

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

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

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

        }

        in ba haka ba (Va == 0x0403) // Rage ƙididdigewa

        {

            idan (setNum> 0)

                setNum --;

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

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

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

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

        }

        

        Rubuta_Dgus (0x1000, 0);

    }

}


Lokacin aikawa: Satumba-19-2023