[Бүләкләнүче очрак] Интеллектуаль мәче азык-төлек контроле системасы

—— DWIN ясаучылар форумыннан

Бу санда без сезгә DWIN уйлап табучылар форумыннан премиягә лаек булган ачык чыганак белән таныштырырбыз: Интеллектуаль мәче азык-төлек контроле системасы.Инженерлар DWIN акыллы экранын кулланып, температураны, дымны һәм калган күләмдә мәче ризыкларын күзәттеләр, һәм мәчеләрнең ашау язмаларын саклап калдылар.Алар шулай ук ​​сыя буяу стиле UI җыелмасын, шулай ук ​​бармак белән кагылганда сыя басу эффектын эшләделәр, сенсорның кире визуаль кабул итү көчен арттыру өчен.

Кереш:

1.UI рәсем материалы

DWIN акыллы экран рәсемнәр, аудио һәм башка материалларга нигезләнеп UI үсешен тәмамлый, экран күрсәтү эчтәлеге буенча алдан әзерләнергә кирәк.

asv (2)

2. Интерфейс үсеше

DGUS программа тәэминаты UI эффектын катлам каплау аша торгыза, әзерләнгән материалларны DGUS программасында тулы рәсемгә берләштерә, дисплей һәм сенсор функцияләрен куя.

asv (1)

3. Басу эффектларын һәм тавыш эффектларын тормышка ашырыгыз

Сенсор позициясе 51 программа ярдәмендә алына, басу эффекты бармак хәрәкәтеннән соң бара, һәм төп озату тавыш эффекты да ирешелә.

(1) Сенсор урыны кодын табыгыз һәм аудио уйнагыз:

буш TouchDetect ()

{

    u16 Va [3] = 0;

    u8 i = 0;

 

    өчен (i = 0; i <3; i ++)

    {

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

        if (Va [0] == 0x5A01)

        {

        }

        бүтән

        {

            тәнәфес;

        }

    }

    if (i! = 0) // Керү өчен башта басыгыз

    {

        u16 уйнау [2] = {0x0001, 0x4000};

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va [1];

        touchPosY = Va [2];

        wrote_dgus_vp (0x00A0, уйнау, 2);

    }

}

 

(2) Сенсор эффектын күрсәтү коды түбәндәгечә:

буш TouchStart ()

{

    if (touchAnimationFlag == 1)

    {

        if (touchAnimationCnt == 0)

        {

            Язу_Дгус (0x5011, touchPosX - 100);

            Язу_Дгус (0x5012, touchPosY - 100);

        }

 

        Язу_Дгус (0x5000, touchAnimationCnt);

        touchAnimationCnt ++;

 

        if (touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Язу_Дгус (0х5011, 1024);

            Язу_Дгус (0х5012, 600);

        }

    }

    

}

 

4. Киләсе адым - экран аша тиешле параметрларны кую, аннары мәче азыкының автоматик туклану функциясен тормышка ашыру өчен мәгълүматны ESP32 аша мәче азык контроллерына тапшыру.Конкрет код түбәндәгечә:

// Кнопка статусын алыгыз

буш get_key_status ()

{

    int i = 0;

    // u16 Va = Read_Dgus (өстәмә);

    u16 Va = Read_Dgus (0x1000);

    if (Va! = 0x0000)

    {

        //Sтатус бите

        if (Va == 0x0103) // g санын урнаштырыгыз

        {

            u16 күчергеч бите [2] = {0x5A01, 19};

            setNum = placeGramNum;

            backPage = 1;// Статус битенә кайту

            Язу_Дгус (0x4000 + 0, setNum% 10);

            Язу_Дгус (0x4000 + 2, setNum / 10% 10);

            Язу_Дгус (0x4000 + 4, setNum / 100% 10);

            Язу_Дгус (0x4000 + 6, setNum / 1000% 10);

            write_dgus_vp (0x0084, күчергеч, 2);

        }

        бүтән булса (Va == 0x0102)

        {

            OneSendData3 (placeGramNum);//Урынмәче ризыгыбер тапкыр

        }

        бүтән булса (Va == 0x0101) // Битне көйләү

        {

            u16 күчергеч [2] = {0x5A01, 3};

            өчен (i = 0; i <6; i ++)

            {

                if (i == 0)

                {

                    Язу_Дгус (0x3070 + i * 0x10 + 0, агымдагы вакыт [i]% 10);

                    Язу_Дгус (0x3070 + i * 0x10 + 2, агымдагы вакыт [i] / 10% 10);

                    Язу_Дгус (0x3070 + i * 0x10 + 4, агымдагы вакыт [i] / 100% 10);

                    Язу_Дгус (0x3070 + i * 0x10 + 6, агымдагы вакыт [i] / 1000% 10);

                }

                бүтән

                {

                    Язу_Дгус (0x3070 + i * 0x10 + 0, агымдагы вакыт [i]% 10);

                    Язу_Дгус (0x3070 + i * 0x10 + 2, агымдагы вакыт [i] / 10% 10);

                }

            }

            write_dgus_vp (0x0084, күчергеч, 2);// көйләүләр битен кертегез

        }

        бүтән булса (Va == 0x0100) //Rэкорд бите

        {

            u16 күчергеч бите [2] = {0x5A01, 2};

            өчен (i = 0; i <6; i ++)

            {

                if (i == 0)

                {

                    Яз_Дгус (0x2000 + i * 0x10 + 0, eatFeedList [0] [i]% 10);

                    Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [0] [i] / 10% 10);

                    Язу_Дгус (0x2000 + i * 0x10 + 4, eatFeedList [0] [i] / 100% 10);

                    Язу_Дгус (0x2000 + i * 0x10 + 6, eatFeedList [0] [i] / 1000% 10);

                }

                бүтән

                {

                    Яз_Дгус (0x2000 + i * 0x10 + 0, eatFeedList [0] [i]% 10);

                    Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [0] [i] / 10% 10);

                }

            }

            write_dgus_vp (0x0084, күчергеч, 2);// Язма битен кертегез

        }

        //Rэкорд бите

        бүтән очракта (Va == 0x0201) // Алдагы битне язып алыгыз

        {

            if (lookEatCnt> 0)

            {

                lookEatCnt--;

                өчен (i = 0; i <6; i ++)

                {

                    if (i == 0)

                    {

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

                        Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [lookEatCnt] [i] / 10% 10);

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

                        Язу_Дгус (0x2000 + i * 0x10 + 6, eatFeedList [lookEatCnt] [i] / 1000% 10);

                    }

                    бүтән

                    {

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

                        Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [lookEatCnt] [i] / 10% 10);

                    }

                }

            }

        }

        бүтән булса (Va == 0x0202) // Киләсе битне яздырыгыз

        {

            if (lookEatCnt <eatCnt - 1)

            {

                lookEatCnt ++;

                өчен (i = 0; i <6; i ++)

                {

                    if (i == 0)

                    {

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

                        Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [lookEatCnt] [i] / 10% 10);

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

                        Язу_Дгус (0x2000 + i * 0x10 + 6, eatFeedList [lookEatCnt] [i] / 1000% 10);

                    }

                    бүтән

                    {

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

                        Язу_Дгус (0x2000 + i * 0x10 + 2, eatFeedList [lookEatCnt] [i] / 10% 10);

                    }

                }

            }

        }

        // Битне урнаштыру

        бүтән булса (Va == 0x0302)

        {

            if (timeMode == 1)

            {

                timeMode = 0;

                Язу_Дгус (0x3A12, 139);

            }

        }

        бүтән булса (Va == 0x0303)

        {

            if (timeMode == 0)

            {

                timeMode = 1;

                Язу_Дгус (0x3A12, 242);

            }

        }

        бүтән очракта (Va> = 0x0304 && Va <= 0x0309)

        {

            u16 күчергеч бите [2] = {0x5A01, 19};

            backPage = 3;

            backNum = Va;

            setNum = timrIntervalHour [Va - 0x0304];

            Язу_Дгус (0x4000 + 0, setNum% 10);

            Язу_Дгус (0x4000 + 2, setNum / 10% 10);

            Язу_Дгус (0x4000 + 4, setNum / 100% 10);

            Язу_Дгус (0x4000 + 6, setNum / 1000% 10);

            write_dgus_vp (0x0084, күчергеч, 2);

        }

        бүтән очракта (Va> = 0x030A && Va <= 0x030F)

        {

            u16 күчергеч бите [2] = {0x5A01, 19};

            backPage = 3;

            backNum = Va;

            setNum = агымдагы вакыт [Va - 0x030A];

            Язу_Дгус (0x4000 + 0, setNum% 10);

            Язу_Дгус (0x4000 + 2, setNum / 10% 10);

            Язу_Дгус (0x4000 + 4, setNum / 100% 10);

            Язу_Дгус (0x4000 + 6, setNum / 1000% 10);

            write_dgus_vp (0x0084, күчергеч, 2);

        }

        //Aмәгълүмат бите

        бүтән булса (Va == 0x0400) //Ышандыр

        {

            u16 күчергеч бите [2] = {0x5A01, 0x0000};

            күчергеч [1] = backPage;

            if (backPage == 1) // Статус битенә кайту

            {

                placeGramNum = setNum;

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

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

            }

            бүтән очракта (backPage == 3)

            {

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

                {

                    u16 сайлау = 0;

                    сайлау = (backNum - 0x0304) * 0x10;

                    timrIntervalHour [backNum - 0x0304] = setNum;

                    Язу_Дгус (0x3010 + сайлау + 0, setNum% 10);

                    Язу_Дгус (0x3010 + сайлау + 2, setNum / 10% 10);

                }

                бүтән очракта (backNum> = 0x030A && backNum <= 0x030F)

                {

                    u16 сайлау = 0;

                    сайлау = (backNum - 0x0304) * 0x10;

                    currentTime [backNum - 0x030A] = setNum;

                    

                    if (backNum == 0x030A)

                    {

                        Язу_Дгус (0x3010 + сайлау + 0, setNum% 10);

                        Язу_Дгус (0x3010 + сайлау + 2, setNum / 10% 10);

                        Язу_Дгус (0x3010 + сайлау + 4, setNum / 100% 10);

                        Write_Dgus (0x3010 + сайлау + 6, setNum / 1000% 10);

                    }

                    бүтән

                    {

                        Язу_Дгус (0x3010 + сайлау + 0, setNum% 10);

                        Язу_Дгус (0x3010 + сайлау + 2, setNum / 10% 10);

                    }

                }

            }

            write_dgus_vp (0x0084, күчергеч, 2);

        }

        бүтән булса (Va == 0x0401) //Кире

        {

            u16 күчергеч бите [2] = {0x5A01, 0x0000};

            күчергеч [1] = backPage;

            write_dgus_vp (0x0084, күчергеч, 2);

        }

        бүтән булса (Va == 0x0402) // Сан арту

        {

            setNum ++;

            Язу_Дгус (0x4000 + 0, setNum% 10);

            Язу_Дгус (0x4000 + 2, setNum / 10% 10);

            Язу_Дгус (0x4000 + 4, setNum / 100% 10);

            Язу_Дгус (0x4000 + 6, setNum / 1000% 10);

        }

        бүтән булса (Va == 0x0403) // Сан кимү

        {

            if (setNum> 0)

                setNum--;

            Язу_Дгус (0x4000 + 0, setNum% 10);

            Язу_Дгус (0x4000 + 2, setNum / 10% 10);

            Язу_Дгус (0x4000 + 4, setNum / 100% 10);

            Язу_Дгус (0x4000 + 6, setNum / 1000% 10);

        }

        

        Яз_Дгус (0х1000, 0);

    }

}


Пост вакыты: 19-2023 сентябрь