—— د DWIN پراختیا کونکي فورم څخه
پدې مسله کې به موږ تاسو ته د DWIN پراختیا کونکي فورم څخه د جایزې ګټونکي خلاصې سرچینې قضیه معرفي کړو: د هوښیار پیشو خواړو کنټرول سیسټم.انجنیرانو د DWIN سمارټ سکرین څخه کار اخیستی ترڅو د تودوخې، رطوبت، او د پیشو د خوړو پاتې مقدار وڅیړي، او د پیشو د خواړو خوړلو ریکارډونه خوندي کړي.دوی په ځانګړي ډول د رنګ رنګ کولو سټایل UI سیټ ډیزاین کړی ، په بیله بیا د رنګ کلیک تاثیر کله چې د ګوتې لخوا لمس کیږي ، د ټچ فیډبیک لید لید ته وده ورکولو لپاره.
پیژندنه:
1.UI انځور مواد
د DWIN سمارټ سکرین د عکسونو پراساس د UI پراختیا بشپړوي ، آډیو او نور توکي باید د سکرین نندارې مینځپانګې سره سم دمخه چمتو شي.
2. د انٹرفیس پراختیا
د DGUS سافټویر د پرت پوښښ له لارې د UI اغیز بحالوي، چمتو شوي توکي د DGUS سافټویر کې بشپړ انځور کې یوځای کوي، او د نندارې او ټچ افعال تنظیموي.
3. د کلک اغیزو او غږ اغیزو پلي کول
د ټچ موقعیت د 51 برنامې له لارې ترلاسه کیږي ، د فشار اغیز د ګوتو حرکت تعقیبوي ، او د کلیدي ملګري غږ اغیز هم ترلاسه کیږي.
(1) د ټچ موقعیت کوډ کشف کړئ او آډیو غږ کړئ:
void TouchDetect()
{
u16 Va[3] = 0;
u8 i = 0 ;
لپاره(i = 0;i <3;i++)
{
Va[i] = Read_Dgus(0x0016 + i)؛
که (Va[0] == 0x5A01)
{
}
بل
{
ماتول
}
}
که (i != 0) // د ننوتلو لپاره لومړی کلیک وکړئ
{
u16 play[2] = {0x0001, 0x4000};
touchAnimationFlag = 1;
touchAnimationCnt = 0 ;
touchPosX = Va[1];
touchPosY = Va[2];
write_dgus_vp(0x00A0, play, 2);
}
}
(2) د ټچ اغیزې ښودلو کوډ په لاندې ډول دی:
باطل ټچ سټارټ()
{
که (touchAnimation Flag == 1)
{
که (touchAnimationCnt == 0)
{
ولیکئ_Dgus(0x5011, touchPosX - 100);
ولیکئ_Dgus(0x5012, touchPosY - 100);
}
ولیکئ_Dgus(0x5000, touchAnimationCnt);
touchAnimationCnt++;
که (touchAnimationCnt == 6)
{
touchAnimationFlag = 0;
ولیکئ_Dgus(0x5011, 1024);
ولیکئ_Dgus(0x5012, 600);
}
}
}
4. بل ګام دا دی چې د سکرین له لارې ورته پیرامیټونه تنظیم کړئ، او بیا د ESP32 له لارې د پیشو خواړو کنټرولر ته ډاټا لیږدئ ترڅو د بلی خواړو اتوماتیک تغذیه فعالیت احساس کړي.ځانګړی کوډ په لاندې ډول دی:
// د تڼۍ حالت ترلاسه کړئ
باطل get_key_status()
{
int i = 0 ;
//u16 Va=Read_Dgus(addr);
u16 Va=Read_Dgus(0x1000);
که (Va != 0x0000)
{
//Status پاڼه
که (Va == 0x0103) // د g شمیره ځای په ځای کړئ
{
u16 switchpage[2] = {0x5A01, 19};
setNum = placeGramNum;
شاته پاڼه = 1;// د وضعیت پاڼې ته بیرته راګرځئ
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0102)
{
OneSendData3(placeGramNum);//ځاید پیشو خواړهیوځل
}
بله که (Va == 0x0101) // ترتیب پاڼه
{
u16 switchpage[2] = {0x5A01, 3};
لپاره(i = 0;i <6;i++)
{
که (i == 0)
{
ولیکئ_ډګس(0x3070 + i * 0x10 + 0, اوسنی وخت[i] % 10);
ولیکئ_Dgus(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);
ولیکئ_Dgus(0x3070 + i * 0x10 + 2, اوسنی وخت [i] / 10 % 10);
}
}
write_dgus_vp(0x0084, switchpage, 2);// د ترتیباتو پاڼې ته ننوځئ
}
نور که (Va == 0x0100) //Record پاڼه
{
u16 switchpage[2] = {0x5A01, 2};
لپاره(i = 0;i <6;i++)
{
که (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);
}
بل
{
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);// د ریکارډ پاڼې ته ننوځئ
}
//Record پاڼه
بله که (Va == 0x0201) // مخکنی مخ ثبت کړئ
{
که (lookEatCnt > 0)
{
lookEatCnt--;
لپاره(i = 0;i <6;i++)
{
که (i == 0)
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
ولیکئ_ډګس(0x2000 + i * 0x10 + 4, د ایټ فیډ لیست[lookEatCnt][i] / 100 % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
بل
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
else if(Va == 0x0202) // د مخ بل مخ ثبت کړئ
{
که (lookEatCnt < eatCnt - 1)
{
lookEatCnt++;
لپاره(i = 0;i <6;i++)
{
که (i == 0)
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
ولیکئ_ډګس(0x2000 + i * 0x10 + 4, د ایټ فیډ لیست[lookEatCnt][i] / 100 % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 6, eatFeedList[lookEatCnt][i] / 1000 % 10);
}
بل
{
ولیکئ_ډګس(0x2000 + i * 0x10 + 0, د ایټ فیډ لیست[lookEatCnt][i] % 10);
ولیکئ_Dgus(0x2000 + i * 0x10 + 2, eatFeedList[lookEatCnt][i] / 10 % 10);
}
}
}
}
// ترتیب پاڼه
نور که (Va == 0x0302)
{
که (د وخت موډ == 1)
{
وخت موډ = 0;
ولیکئ_Dgus(0x3A12, 139);
}
}
نور که (Va == 0x0303)
{
که (timeMode == 0)
{
وخت موډ = 1;
ولیکئ_Dgus(0x3A12, 242);
}
}
نور که (Va >= 0x0304 && Va <= 0x0309)
{
u16 switchpage[2] = {0x5A01, 19};
backPage = 3 ;
backNum = Va;
setNum = timrIntervalHour[Va - 0x0304];
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va >= 0x030A && Va <= 0x030F)
{
u16 switchpage[2] = {0x5A01, 19};
backPage = 3 ;
backNum = Va;
setNum = اوسنی وخت[Va - 0x030A]؛
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
write_dgus_vp(0x0084, switchpage, 2);
}
//Aد معلوماتو پاڼه تنظیم کړئ
نور که (Va == 0x0400) //تایید کړه
{
u16 switchpage[2] = {0x5A01, 0x0000};
switchpage[1] = شاته مخ
که (شاته پاڼه == 1) // د وضعیت پاڼې ته بیرته راشئ
{
placeGramNum = setNum;
ولیکئ_ډګس(0x1140 + 0, ځای ګرام نمبر % 10);
ولیکئ_ډګس(0x1140 + 2, ځای ګرام نمبر / 10 % 10);
}
بل که (شاته پاڼه == 3)
{
که (backNum>= 0x0304 && backNum <= 0x0309)
{
u16 انتخاب = 0;
Select = (backNum - 0x0304) * 0x10;
timrIntervalHour [backNum - 0x0304] = setNum;
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
}
نور که (backNum>= 0x030A && backNum <= 0x030F)
{
u16 انتخاب = 0;
Select = (backNum - 0x0304) * 0x10;
اوسنی وخت [backNum - 0x030A] = setNum;
که (backNum == 0x030A)
{
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 4, setNum / 100 % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 6, setNum / 1000 % 10);
}
بل
{
ولیکئ_Dgus(0x3010 + انتخاب + 0, setNum % 10);
ولیکئ_Dgus(0x3010 + انتخاب + 2, setNum / 10 % 10);
}
}
}
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0401) //شاته
{
u16 switchpage[2] = {0x5A01, 0x0000};
switchpage[1] = شاته مخ
write_dgus_vp(0x0084, switchpage, 2);
}
نور که (Va == 0x0402) // شمیري زیاتوالی
{
setNum++;
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
نور که (Va == 0x0403) // شمیري کمښت
{
که (setNum > 0)
setNum--;
ولیکئ_Dgus(0x4000 + 0, setNum % 10);
ولیکئ_Dgus(0x4000 + 2, setNum / 10% 10);
ولیکئ_Dgus(0x4000 + 4, setNum / 100% 10);
ولیکئ_Dgus(0x4000 + 6, setNum / 1000 % 10);
}
ولیکئ_Dgus(0x1000, 0);
}
}
د پوسټ وخت: سپتمبر-19-2023