—— Z forum programistów DWIN
W tym numerze przedstawimy Państwu wielokrotnie nagradzany przypadek open source Devin Developer Forum dotyczący zastosowania Divin Screen w nowym obszarze - strony internetowej przeglądarki i dogłębnej rozbudowy portu szeregowego T5L Divin Screen (technologia Node-RED) .Inżynierowie używają inteligentnych ekranów T5L do przekazywania informacji. Technologia NodeRED wymaga jedynie portu szeregowego do połączenia z Internetem i realizacji interakcji danych pomiędzy ekranem Diwen a stroną internetową przeglądarki.Rozwiązanie to realizuje funkcje takie jak wysyłanie i odbieranie danych, interakcja z wykresami oraz wyświetlanie podstawowych informacji pomiędzy inteligentnym ekranem a stroną internetową.
1. Wyświetlanie efektu działania strony internetowej Node-RED
(1) Korzystając z technologii Node-RED, przeglądarka służy jako wejście do interakcji, dzięki czemu przeglądarka i ekran wchodzą w interakcję za pośrednictwem portu szeregowego w celu realizacji odpowiedniego wyświetlania funkcji.
Zakładka wysyłania i odbierania danych
Ikona interaktywnej karty na stronie
Informacje podstawowe Efekt zakładki
(2) Główne kody referencyjne klienta internetowego Node-RED są następujące:
{
"id": "fbb314a16ea00889",
"type": "wejście szeregowe",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Port szeregowy odbiera dane",
"seryjny": "83fb45b5f4b51d61",
„x”: 390,
„y”: 140,
„przewody”: [
[
"685a2fb2c2dc8fba"
]
]
},
{
"id": "1ba3c6e812e03e27",
"type": "wyjście szeregowe",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Wysyłanie przez port szeregowy",
"seryjny": "83fb45b5f4b51d61",
„x”: 860,
„y”: 260,
„przewody”: []
},
{
"id": "5fb7f1d3d7425133",
„typ”: „status”,
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Monitoruj stan portu szeregowego",
"zakres": [
„fbb314a16ea00889”
],
„x”: 390,
„y”: 200,
„przewody”: [
[
„3f18d1fdea398d35”
]
]
},
{
"id": "3f18d1fdea398d35",
"typ": "funkcja",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"name": "Wyodrębnij status portu szeregowego",
"func": "let sta = msg.status.text;\nlet color = 'red';\nif (sta.indexOf('not-connected') >= 0) \n sta = 'Unconnected';\nelse if (sta.indexOf('połączono') >= 0)\n{\n sta = 'połączenie powiodło się';\n color = 'green';\n}else\n sta = 'wystąpił błąd';\nmsg[' ładunek'] = sta;\nmsg['color'] = kolor;\n\nwiadomość zwrotna;",
„wyjścia”: 1,
„przekroczenie limitu czasu”: 0,
"noerr": 0,
"inicjuj": "",
"sfinalizuj": "",
"libs": [],
„x”: 620,
„y”: 200,
„przewody”: [
[
„2ec78ff0b0b9a56f”
]
]
},
{
"id": "2ec78ff0b0b9a56f",
"typ": "szablon_ui",
"z": "09e0777eaff7fdea",
"g": "c1661722c7db00f9",
"grupa": "4e4db779a7b91019",
"name": "Wyświetl status portu szeregowego",
„zamówienie”: 1,
"szerokość": 0,
"wysokość": 0,
"format": "\n Stan portu szeregowego:
2.DGUIinterfejsDprojekt
1. Projekt techniczny C51
Rozwiązanie wykorzystuje port szeregowy 2 inteligentnego ekranu T5L do komunikacji ze stroną internetową Node-RED.Niektóre kody referencyjne są następujące:
#include „sys.h”
#include „uart2.h”
#włączać
#włączać
wzmocnienie u8 [200];
puste główne (puste)
{
u16num;
u16val;
u16stary;
u8i;
sys_init();
uart2_init(115200);
stary = 0;
podczas gdy(1)
{
if(is_recv_complete)
{
uart2_buf[recv_len++]= 0;
uart2_buf[recv_len++]= 0;
if(strstr((char*)uart2_buf,"cmd"))
{
liczba= uart2_buf[3]-'0';
jeśli(liczba<3)
{
for(i=0;i<3;i++)
{
wartość= (liczba==i);
sys_write_vp(0x2300+i,(u8*)&val, 1);
}
}elseif(liczba<5)
{
wartość= (liczba==3);
sys_write_vp(0x2200,(u8*)&val, 1);
}
}w przeciwnym razie
{
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, wzmocnienie, 50);
for(i=0;i<100;i++)
{
if(buff==0xff)
{
wzmocnienie= 0x00;
wzmocnienie[i+1]= 0x00;
przerwa;
}
}
u2_send_bytes(wzmocnienie,strlen(wzmocnienie));
wartość= 0;
sys_write_vp(0x1000,(u8*)&val, 1);
}
sys_read_vp(0x2400,(u8*)&val, 1);
if(val!=stary)
{
sprintf(wzmocnienie, „%d”, wartość);
u2_send_bytes(wzmocnienie,strlen(wzmocnienie));
stary = wartość;
}
}
}
Czas publikacji: 28 grudnia 2023 r