——DWIN Geliştirici Forumundan
Bu sayımızda, Divin Screen'in yeni alanda uygulanmasına yönelik Devin Developer Forum'un ödüllü açık kaynak örneğini size tanıtacağız - tarayıcı web sayfası ve T5L Divin Screen seri bağlantı noktasının derinlemesine genişletilmesi (Node-RED teknolojisi) .Mühendisler, Node-RED teknolojisini geçmek için T5L akıllı ekranları kullanıyor; internete bağlanmak ve Diwen ekranı ile tarayıcı web sayfası arasındaki veri etkileşimini gerçekleştirmek için yalnızca bir seri bağlantı noktası gerekiyor.Bu çözüm, akıllı ekran ile web sayfası arasında veri gönderme ve alma, grafik etkileşimi, temel bilgilerin görüntülenmesi gibi işlevleri gerçekleştirir.
1. Node-RED web sayfası çalıştırma efekti ekranı
(1) Node-RED teknolojisini kullanan tarayıcı, etkileşim girişi olarak kullanılır, böylece tarayıcı ve ekran, ilgili işlev ekranını gerçekleştirmek için seri port üzerinden etkileşime girer.
Veri gönderme ve alma Sekme sayfası
Simge etkileşimli Sekme sayfası
Temel bilgiler Sekme sayfası efekti
(2) Node-RED web istemcisinin ana referans kodları aşağıdaki gibidir:
{
"kimlik": "fbb314a16ea00889",
"type": "seri giriş",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Seri port veri alıyor",
"seri": "83fb45b5f4b51d61",
"x": 390,
"y": 140,
"teller": [
[
"685a2fb2c2dc8fba"
]
]
},
{
"kimlik": "1ba3c6e812e03e27",
"type": "seri çıkış",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Seri port gönderimi",
"seri": "83fb45b5f4b51d61",
"x": 860,
"y": 260,
"teller": []
},
{
"kimlik": "5fb7f1d3d7425133",
"tip": "durum",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Seri port durumunu izle",
"kapsam": [
"fbb314a16ea00889"
],
"x": 390,
"y": 200,
"teller": [
[
"3f18d1fdea398d35"
]
]
},
{
"kimlik": "3f18d1fdea398d35",
"tip": "işlev",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Seri port durumunu çıkar",
"func": "let sta = msg.status.text;\nlet color = 'kırmızı';\nif (sta.indexOf('bağlı değil') >= 0) \n sta = 'Bağlantısız';\nelse if (sta.indexOf('bağlandı') >= 0)\n{\n sta = 'bağlantı başarılı oldu';\n color = 'yeşil';\n}else\n sta = 'hata oluştu';\nmsg[' yük'] = sta;\nmsg['renk'] = renk;\n\ndönüş msj;",
"çıkışlar": 1,
"zaman aşımı": 0,
"hayır": 0,
"başlat": "",
"Sonuçlandırmak": "",
"lib'ler": [],
"x": 620,
"y": 200,
"teller": [
[
"2ec78ff0b0b9a56f"
]
]
},
{
"kimlik": "2ec78ff0b0b9a56f",
"tip": "ui_template",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"grup": "4e4db779a7b91019",
"name": "Seri port durumunu görüntüle",
"sipariş": 1,
"genişlik": 0,
"yükseklik": 0,
"biçim": "\n Seri bağlantı noktası durumu:
2.DGUSIarayüzDe-tasarım
1. C51 Mühendislik Tasarımı
Çözüm, Node-RED web sayfasıyla iletişim kurmak için T5L akıllı ekran seri bağlantı noktası 2'yi kullanır.Bazı referans kodları aşağıdaki gibidir:
#include "sys.h"
#"uart2.h"yi dahil et
#katmak
#katmak
u8 güçlendirmesi[200];
geçersiz ana (geçersiz)
{
u16num;
u16val;
u16eski;
u8i;
sys_init();
uart2_init(115200);
eski= 0;
süre(1)
{
if(is_recv_complete)
{
uart2_buf[recv_len++]= 0;
uart2_buf[recv_len++]= 0;
if(strstr((char*)uart2_buf,"cmd"))
{
sayı= uart2_buf[3]-'0';
eğer(sayı<3)
{
for(i=0;i<3;i++)
{
val= (sayı==i);
sys_write_vp(0x2300+i,(u8*)&val, 1);
}
}elseif(sayı<5)
{
val= (sayı==3);
sys_write_vp(0x2200,(u8*)&val, 1);
}
}başka
{
sys_write_vp(0x2000,uart2_buf, recv_len/2+2);
}
recv_len= 0;
is_recv_complete= 0;
}
sys_read_vp(0x1000,(u8*)&val, 1);
if(val==1)
{
sys_read_vp(0x2100, buff, 50);
for(i=0;i<100;i++)
{
if(buff==0xff)
{
güçlendirme= 0x00;
güçlendirme[i+1]= 0x00;
kırmak;
}
}
u2_send_bytes(buff,strlen(buff));
değer= 0;
sys_write_vp(0x1000,(u8*)&val, 1);
}
sys_read_vp(0x2400,(u8*)&val, 1);
if(val!=eski)
{
sprintf(buff,"%d", val);
u2_send_bytes(buff,strlen(buff));
eski= val;
}
}
}
Gönderim zamanı: 28 Aralık 2023