[Baýrakly waka] Akylly pişigiň iýmit dolandyryş ulgamy

—— DWIN dörediji forumyndan

Gepleşigimiziň bu sanynda, DWIN Öndürijiler Forumy: Akylly pişik iýmitine gözegçilik ulgamy tarapyndan baýrakly açyk çeşme bilen tanyşdyrarys.Inersenerler, pişik iýmitiniň temperaturasyna, çyglylygyna we galan mukdaryna gözegçilik etmek we pişigiň iýmitleniş ýazgylaryny saklamak üçin DWIN akylly ekrany ulandylar.Şeýle hem, duýgur reňkiň wizual duýgusyny ýokarlandyrmak üçin syýa reňk stili UI toplumyny, barmak degeninde syýa basmagyň täsirini özboluşly dizaýn etdiler.

Giriş:

1.UI surat materialy

DWIN akylly ekrany, suratlaryň, sesiň we beýleki materiallaryň esasynda UI ösüşini tamamlaýar, ekranyň mazmunyna görä öňünden taýýarlanmaly.

asv (2)

2.Interfeýsiň ösüşi

DGUS programma üpjünçiligi UI effektini gatlak bilen örtmek arkaly dikeldýär, taýýarlanan materiallary DGUS programma üpjünçiliginde doly surata birleşdirýär we displeý we duýgur funksiýalaryny düzýär.

asv (1)

3. Basmak effektlerini we ses effektlerini ýerine ýetiriň

Duýgurlyk ýagdaýy 51 programma arkaly alynýar, basmak effekti barmagyň hereketini yzarlaýar we esasy ýoldaş ses effekti hem gazanylýar.

(1) Duýgur ýeriň koduny kesgitläň we ses çalyň:

boş TouchDetect ()

{

    u16 Va [3] = 0;

    u8 i = 0;

 

    üçin (i = 0; i <3; i ++)

    {

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

        eger (Va [0] == 0x5A01)

        {

        }

        başga

        {

            arakesme;

        }

    }

    if (i! = 0) // Girmek üçin ilki basyň

    {

        u16 oýnamak [2] = {0x0001, 0x4000};

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va [1];

        touchPosY = Va [2];

        ýazmak_dgus_vp (0x00A0, oýnamak, 2);

    }

}

 

(2) Duýgur effekti görkezmegiň kody aşakdaky ýaly:

boş TouchStart ()

{

    eger (touchAnimationFlag == 1)

    {

        eger (touchAnimationCnt == 0)

        {

            Write_Dgus (0x5011, touchPosX - 100);

            Writeaz_Dgus (0x5012, touchPosY - 100);

        }

 

        Write_Dgus (0x5000, touchAnimationCnt);

        touchAnimationCnt ++;

 

        eger (touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Writeaz_Dgus (0x5011, 1024);

            Write_Dgus (0x5012, 600);

        }

    }

    

}

 

4. Indiki ädim, degişli parametrleri ekranyň üsti bilen kesgitlemek, soňra bolsa pişik iýmitiniň awtomatiki iýmitleniş funksiýasyny durmuşa geçirmek üçin maglumatlary ESP32 arkaly pişik iýmit gözegçisine geçirmek.Specificörite kod aşakdaky ýaly:

// Düwme ýagdaýyny alyň

boş get_key_status ()

{

    int i = 0;

    // u16 Va = Oka_Dgus (goşmaça);

    u16 Va = Oka_Dgus (0x1000);

    eger (Va! = 0x0000)

    {

        //Status sahypasy

        eger (Va == 0x0103) // g sanyny ýerleşdiriň

        {

            u16 wyklýuçatel [2] = {0x5A01, 19};

            setNum = placeGramNum;

            backPage = 1;// statusagdaý sahypasyna dolan

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

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

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

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

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);

        }

        bolmasa (Va == 0x0102)

        {

            OneSendData3 (ýerGramNum);//Placeeripişik iýmitibir gezek

        }

        bolmasa (Va == 0x0101) // Sahypany düzmek

        {

            u16 wyklýuçatel [2] = {0x5A01, 3};

            üçin (i = 0; i <6; i ++)

            {

                eger (i == 0)

                {

                    Writeaz_Dgus (0x3070 + i * 0x10 + 0, häzirki wagt [i]% 10);

                    Writeazyň_Dgus (0x3070 + i * 0x10 + 2, häzirki wagt [i] / 10% 10);

                    Write_Dgus (0x3070 + i * 0x10 + 4, häzirki wagt [i] / 100% 10);

                    Writeazyň_Dgus (0x3070 + i * 0x10 + 6, häzirki wagt [i] / 1000% 10);

                }

                başga

                {

                    Writeaz_Dgus (0x3070 + i * 0x10 + 0, häzirki wagt [i]% 10);

                    Writeazyň_Dgus (0x3070 + i * 0x10 + 2, häzirki wagt [i] / 10% 10);

                }

            }

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);// Sazlamalar sahypasyny giriziň

        }

        bolmasa (Va == 0x0100) //Record sahypasy

        {

            u16 wyklýuçatel [2] = {0x5A01, 2};

            üçin (i = 0; i <6; i ++)

            {

                eger (i == 0)

                {

                    Writeazyň_Dgus (0x2000 + i * 0x10 + 0, eatFeedList [0] [i]% 10);

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

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

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

                }

                başga

                {

                    Writeazyň_Dgus (0x2000 + i * 0x10 + 0, eatFeedList [0] [i]% 10);

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

                }

            }

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);// recordazgy sahypasyny giriziň

        }

        //Record sahypasy

        bolmasa (Va == 0x0201) // Öňki sahypany ýazga alyň

        {

            eger (seretEatCnt> 0)

            {

                seretEatCnt--;

                üçin (i = 0; i <6; i ++)

                {

                    eger (i == 0)

                    {

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

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

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

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

                    }

                    başga

                    {

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

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

                    }

                }

            }

        }

        bolmasa (Va == 0x0202) // Indiki sahypany ýazga alyň

        {

            eger (seretEatCnt <eatCnt - 1)

            {

                LookEatCnt ++;

                üçin (i = 0; i <6; i ++)

                {

                    eger (i == 0)

                    {

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

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

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

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

                    }

                    başga

                    {

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

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

                    }

                }

            }

        }

        // Sahypany düzmek

        bolmasa (Va == 0x0302)

        {

            eger (timeMode == 1)

            {

                timeMode = 0;

                Writeaz_Dgus (0x3A12, 139);

            }

        }

        bolmasa (Va == 0x0303)

        {

            eger (timeMode == 0)

            {

                timeMode = 1;

                Writeaz_Dgus (0x3A12, 242);

            }

        }

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

        {

            u16 wyklýuçatel [2] = {0x5A01, 19};

            backPage = 3;

            backNum = Va;

            setNum = timrIntervalHour [Va - 0x0304];

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

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

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

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

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);

        }

        bolmasa (Va> = 0x030A && Va <= 0x030F)

        {

            u16 wyklýuçatel [2] = {0x5A01, 19};

            backPage = 3;

            backNum = Va;

            setNum = häzirki wagt [Va - 0x030A];

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

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

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

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

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);

        }

        //Amaglumat sahypasy

        bolmasa (Va == 0x0400) //Tassykla

        {

            u16 wyklýuçatel [2] = {0x5A01, 0x0000};

            wyklýuçatel [1] = arka sahypa;

            if (backPage == 1) // statusagdaý sahypasyna dolan

            {

                placeGramNum = setNum;

                Write_Dgus (0x1140 + 0, ýerGramNum% 10);

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

            }

            bolmasa (backPage == 3)

            {

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

                {

                    u16 saýla = 0;

                    saýlaň = (backNum - 0x0304) * 0x10;

                    timrIntervalHour [backNum - 0x0304] = setNum;

                    Write_Dgus (0x3010 + saýlaň + 0, setNum% 10);

                    Write_Dgus (0x3010 + saýlaň + 2, setNum / 10% 10);

                }

                başgaça bolsa (backNum> = 0x030A && backNum <= 0x030F)

                {

                    u16 saýla = 0;

                    saýlaň = (backNum - 0x0304) * 0x10;

                    häzirkiTime [backNum - 0x030A] = setNum;

                    

                    eger (backNum == 0x030A)

                    {

                        Write_Dgus (0x3010 + saýlaň + 0, setNum% 10);

                        Write_Dgus (0x3010 + saýlaň + 2, setNum / 10% 10);

                        Write_Dgus (0x3010 + saýlaň + 4, setNum / 100% 10);

                        Write_Dgus (0x3010 + saýlaň + 6, setNum / 1000% 10);

                    }

                    başga

                    {

                        Write_Dgus (0x3010 + saýlaň + 0, setNum% 10);

                        Write_Dgus (0x3010 + saýlaň + 2, setNum / 10% 10);

                    }

                }

            }

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);

        }

        bolmasa (Va == 0x0401) //Yzyna

        {

            u16 wyklýuçatel [2] = {0x5A01, 0x0000};

            wyklýuçatel [1] = arka sahypa;

            ýazmak_dgus_vp (0x0084, wyklýuçatel, 2);

        }

        bolmasa (Va == 0x0402) // San köpelmegi

        {

            setNum ++;

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

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

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

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

        }

        bolmasa (Va == 0x0403) // San azalmagy

        {

            eger (setNum> 0)

                setNum--;

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

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

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

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

        }

        

        Writeaz_Dgus (0x1000, 0);

    }

}


Iş wagty: 19-2023-nji sentýabr