[Kiiska ku guuleysiga abaal-marinta] Nidaamka Xakamaynta Cunnada Bisadda ee caqliga leh

——Waxaa laga soo qaatay Madasha Horumarinta ee DWIN

Arrintaan, waxaanu kuugu soo bandhigi doonaa kiis il furan oo abaal-marin ah oo laga helay Madasha Horumarinta ee DWIN: Nidaamka Xakamaynta Cunnada Bisadaha ee caqliga leh.Injineeradu waxay isticmaaleen shaashada smart DWIN si ay ula socdaan heerkulka, qoyaanka, iyo inta hadhay ee cuntada bisadaha, iyo si ay u badbaadiyaan diiwaanka cunto ee bisadda.Waxay sidoo kale si gaar ah u naqshadeeyeen qaabka rinjiyeynta khad UI, iyo sidoo kale saamaynta garaaca qalinka marka farta lagu taabto, si kor loogu qaado aragtida muuqaalka ah ee jawaab celinta taabashada.

Hordhac:

1.UI sawirka walxaha

Shaashada smart DWIN waxay dhamaystirtaa horumarinta UI ee ku salaysan sawirada, maqalka iyo agabyada kaleba waxay u baahan yihiin in horay loo sii diyaariyo iyadoo la raacayo nuxurka bandhiga shaashadda.

asv (2)

2.Interface horumarinta

Software-ka DGUS wuxuu dib u soo celiyaa saamaynta UI iyada oo loo marayo lakabka lakabka, wuxuu isku daraa agabyada la diyaariyey sawir buuxa oo ku jira software-ka DGUS, wuxuuna dejiyaa muujinta iyo hawlaha taabashada.

asv (1)

3. Hirgeli saamaynta gujinta iyo saamaynta dhawaaqa

Booska taabashada waxaa lagu helaa iyada oo loo marayo barnaamijka 51, saameynta cadaadisku waxay raacdaa dhaqdhaqaaqa farta, iyo saameynta dhawaaqa wehelka muhiimka ah ayaa sidoo kale la gaaraa.

(1) Soo hel koodka goobta taabashada oo daar maqal:

madhan TouchDetect()

{

    u16 Va[3] = 0;

    u8 i = 0;

 

    loogu talagalay (i = 0; i <3; i++)

    {

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

        haddii (Va[0] == 0x5A01)

        {

        }

        kale

        {

            jebin;

        }

    }

    if(i!= 0) // Marka hore guji si aad u gasho

    {

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

        touchAnimationFlag = 1;

        touchAnimationCnt = 0;

        touchPosX = Va[1];

        touchPosY = Va[2];

        write_dgus_vp (0x00A0, ciyaar, 2);

    }

}

 

(2) Koodhka muujinta saamaynta taabashada waa sida soo socota:

madhan TouchStart()

{

    haddii (TouchAnimationFlag == 1)

    {

        haddii (touchAnimationCnt == 0)

        {

            Write_Dgus (0x5011, touchPosX - 100);

            Qor_Dgus (0x5012, touchPosY - 100);

        }

 

        Write_Dgus (0x5000, touchAnimationCnt);

        touchAnimationCnt++;

 

        haddii (touchAnimationCnt == 6)

        {

            touchAnimationFlag = 0;

            Qor_Dgus (0x5011, 1024);

            Qor_Dgus (0x5012, 600);

        }

    }

    

}

 

4. Tallaabada xigta waa in la dejiyo cabbirada u dhigma iyada oo loo marayo shaashadda, ka dibna u gudbi xogta kontoroolka cuntada bisadaha iyada oo loo marayo ESP32 si loo xaqiijiyo shaqada quudinta tooska ah ee cuntada bisadaha.Codsiga gaarka ah waa sida soo socota:

// Hel heerka badhanka

madhan helitaanka_key_status()

{

    int i = 0;

    // u16 Va=Akhri_Dgus(addr);

    u16 Va=Akhri_Dgus(0x1000);

    haddii (Va!= 0x0000)

    {

        //Sbogga tatus

        haddii (Va == 0x0103) // Dhig lambarka g

        {

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

            setNum = placeGramNum;

            Bogga dambe = 1;// Ku laabo bogga heerka

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

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

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

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

            write_dgus_vp (0x0084, beddelka bogga, 2);

        }

        haddii kale (Va == 0x0102)

        {

            OneSendData3(goobGramNum);//Goobtacuntada bisadahamar

        }

        Haddii kale (Va == 0x0101) // Bogga dejinta

        {

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

            loogu talagalay (i = 0; i <6; i++)

            {

                haddii (i == 0)

                {

                    Qor_Dgus (0x3070 + i * 0x10 + 0, wakhtiga xaadirka ah[i]% 10);

                    Qor_Dgus (0x3070 + i * 0x10 + 2, wakhtiga xaadirka ah[i] / 10% 10);

                    Write_Dgus (0x3070 + i * 0x10 + 4, wakhtiga xaadirka ah[i] / 100 % 10);

                    Write_Dgus (0x3070 + i * 0x10 + 6, wakhtiga xaadirka ah[i] / 1000 % 10);

                }

                kale

                {

                    Qor_Dgus (0x3070 + i * 0x10 + 0, wakhtiga xaadirka ah[i]% 10);

                    Qor_Dgus (0x3070 + i * 0x10 + 2, wakhtiga xaadirka ah[i] / 10% 10);

                }

            }

            write_dgus_vp (0x0084, beddelka bogga, 2);// Geli bogga dejinta

        }

        haddii kale (Va == 0x0100) //Rbogga ecord

        {

            u16 beddelka bogga[2] = {0x5A01, 2};

            loogu talagalay (i = 0; i <6; i++)

            {

                haddii (i == 0)

                {

                    Qor_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);

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

                }

                kale

                {

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

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

                }

            }

            write_dgus_vp (0x0084, beddelka bogga, 2);// Geli bogga diiwaanka

        }

        //Rbogga ecord

        Haddii kale haddii (Va == 0x0201) // Bogga hore u qor

        {

            haddii (eegEatCnt> 0)

            {

                fiiriEatCnt--;

                loogu talagalay (i = 0; i <6; i++)

                {

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

                    }

                    kale

                    {

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

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

                    }

                }

            }

        }

        Haddii kale haddii (Va == 0x0202) // Diiwaangeli bogga xiga

        {

            haddii (fiiriEatCnt < eatCnt - 1)

            {

                fiiriEatCnt++;

                loogu talagalay (i = 0; i <6; i++)

                {

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

                    }

                    kale

                    {

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

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

                    }

                }

            }

        }

        //Bogga dejinta

        haddii kale (Va == 0x0302)

        {

            haddi (waqtiga == 1)

            {

                Habka waqtiga = 0;

                Qor_Dgus (0x3A12, 139);

            }

        }

        haddii kale (Va == 0x0303)

        {

            haddi (waqtiga == 0)

            {

                Habka waqtiga = 1;

                Qor_Dgus (0x3A12, 242);

            }

        }

        Haddii kale (Va>= 0x0304 && Va <= 0x0309)

        {

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

            Bogga dambe = 3;

            backNum = Va;

            setNum = timrIntervalHour[Va - 0x0304];

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

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

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

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

            write_dgus_vp (0x0084, beddelka bogga, 2);

        }

        Haddii kale (Va>= 0x030A && Va <= 0x030F)

        {

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

            Bogga dambe = 3;

            backNum = Va;

            setNum = Waqtiga xaadirka ah [Va - 0x030A];

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

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

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

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

            write_dgus_vp (0x0084, beddelka bogga, 2);

        }

        //Asax bogga xogta

        haddii kale (Va == 0x0400) //Xaqiiji

        {

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

            beddelka[1] = bogga dambe;

            haddii(Bogga dambe == 1) // Ku noqo bogga heerka

            {

                placeGramNum = setNum;

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

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

            }

            Haddii kale haddii (bogga dambe = 3)

            {

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

                {

                    u16 dooro = 0;

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

                    timrIntervalHour[backNum - 0x0304] = setNum;

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

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

                }

                Haddii kale (backNum>= 0x030A & backNum <= 0x030F)

                {

                    u16 dooro = 0;

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

                    currentTime[backNum - 0x030A] = setNum;

                    

                    haddi(backNum == 0x030A)

                    {

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

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

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

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

                    }

                    kale

                    {

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

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

                    }

                }

            }

            write_dgus_vp (0x0084, beddelka bogga, 2);

        }

        haddii kale (Va == 0x0401) //Dib u noqo

        {

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

            beddelka[1] = bogga dambe;

            write_dgus_vp (0x0084, beddelka bogga, 2);

        }

        Haddii kale haddii (Va == 0x0402) // Kor u kaca tirada

        {

            setNum++;

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

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

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

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

        }

        Haddii kale haddii (Va == 0x0403) // Hoos u dhaca tirada

        {

            haddii (setNum> 0)

                setNum--;

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

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

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

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

        }

        

        Qor_Dgus (0x1000, 0);

    }

}


Waqtiga boostada: Seb-19-2023