——DWIN Developer Forumundan
Bu buraxılışda biz sizə Divin Ekranının yeni sahədə tətbiqi üçün Devin Developer Forumunun mükafat qazanmış açıq mənbə nümunəsini təqdim edəcəyik - brauzer veb-səhifəsi və T5L Divin Screen seriya portunun dərin genişləndirilməsi (Node-RED texnologiyası) .Mühəndislər Node-RED texnologiyasını ötürmək üçün T5L smart ekranlarından istifadə edir, İnternetə qoşulmaq və Diwen ekranı ilə brauzerin veb səhifəsi arasında məlumat qarşılıqlı əlaqəsini həyata keçirmək üçün yalnız serial port tələb edir.Bu həll məlumatların göndərilməsi və qəbulu, diaqramın qarşılıqlı əlaqəsi və smart ekran və veb səhifə arasında əsas məlumatların göstərilməsi kimi funksiyaları həyata keçirir.
1. Node-RED veb səhifəsi effektli ekranla işləyir
(1) Node-RED texnologiyasından istifadə edərək, brauzer qarşılıqlı giriş kimi istifadə olunur ki, brauzer və ekran müvafiq funksiya ekranını həyata keçirmək üçün serial port vasitəsilə qarşılıqlı əlaqə qurur.
Məlumatların göndərilməsi və qəbulu Tab səhifəsi
Simge interaktiv Tab səhifəsi
Əsas məlumat Tab səhifəsi effekti
(2) Node-RED veb müştərisi üçün əsas istinad kodları aşağıdakılardır:
{
"id": "fbb314a16ea00889",
"type": "seriyalı giriş",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Serial port məlumat qəbul edir",
"serial": "83fb45b5f4b51d61",
"x": 390,
"y": 140,
"tellər": [
[
"685a2fb2c2dc8fba"
]
]
},
{
"id": "1ba3c6e812e03e27",
"type": "seriyalı çıxış",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Serial port göndərilməsi",
"serial": "83fb45b5f4b51d61",
"x": 860,
"y": 260,
"tellər": []
},
{
"id": "5fb7f1d3d7425133",
"növ": "status",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Serial port statusunu izləyin",
"əhatə dairəsi": [
"fbb314a16ea00889"
],
"x": 390,
"y": 200,
"tellər": [
[
"3f18d1fdea398d35"
]
]
},
{
"id": "3f18d1fdea398d35",
"növ": "funksiya",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Serial port statusunu çıxarın",
"func": "let sta = msg.status.text;\nlet color = 'red';\nif (sta.indexOf('not-connected') >= 0) \n sta = 'Unconnected';\nelse if (sta.indexOf('connected') >= 0)\n{\n sta = 'bağlantı uğurlu oldu';\n rəng = 'yaşıl';\n}else\n sta = 'xəta baş verdi';\nmsg[' faydalı yük'] = sta;\nmsg['color'] = color;\n\nmsg qaytarın;",
"çıxışlar": 1,
"fayda": 0,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 620,
"y": 200,
"tellər": [
[
"2ec78ff0b0b9a56f"
]
]
},
{
"id": "2ec78ff0b0b9a56f",
"type": "ui_template",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"group": "4e4db779a7b91019",
"name": "Serial port statusunu göstərin",
"sifariş": 1,
"en": 0,
"hündürlük": 0,
"format": "\n Serial port statusu:
2.DGUSIinterfeysDesign
1. C51 Mühəndislik Dizaynı
Həll, Node-RED veb səhifəsi ilə əlaqə yaratmaq üçün T5L smart ekran serial port 2-dən istifadə edir.Bəzi istinad kodları aşağıdakılardır:
# "sys.h" daxil edin
# "uart2.h" daxil edin
#daxildir
#daxildir
u8 buff[200];
əsas boşluq (boş)
{
u16;
u16val;
u16 yaşlı;
u8i;
sys_init();
uart2_init(115200);
köhnə = 0;
isə (1)
{
əgər (recv_tamamlanmışdır)
{
uart2_buf[recv_len++]= 0;
uart2_buf[recv_len++]= 0;
if(strstr((char*)uart2_buf,"cmd"))
{
num= uart2_buf[3]-'0';
əgər(sayı<3)
{
üçün(i=0;i<3;i++)
{
val= (num==i);
sys_write_vp(0x2300+i,(u8*)&val, 1);
}
}elseif(nömrə<5)
{
val= (sayı==3);
sys_write_vp(0x2200,(u8*)&val, 1);
}
}başqa
{
sys_write_vp(0x2000,uart2_buf, recv_len/2+2);
}
recv_len= 0;
is_recv_complete= 0;
}
sys_read_vp(0x1000,(u8*)&val, 1);
əgər(val==1)
{
sys_read_vp(0x2100, buff, 50);
üçün(i=0;i<100;i++)
{
əgər (buff==0xff)
{
buff = 0x00;
buff[i+1]= 0x00;
fasilə;
}
}
u2_send_bayt(buff,strlen(buff));
val= 0;
sys_write_vp(0x1000,(u8*)&val, 1);
}
sys_read_vp(0x2400,(u8*)&val, 1);
əgər(val!=köhnə)
{
sprintf(buff,"%d", val);
u2_send_bayt(buff,strlen(buff));
köhnə = val;
}
}
}
Göndərmə vaxtı: 28 dekabr 2023-cü il