Pagina web a browserului cu sursă deschisă și ecranul T5L DWIN Extindere profundă a portului serial (tehnologia Node-RED)

——De la DWIN Developer Forum

În acest număr, vă vom prezenta un caz open source premiat al Devin Developer Forum pentru aplicarea Divin Screen în noul domeniu - pagina web a browserului și extinderea în profunzime a portului serial T5L Divin Screen (tehnologia Node-RED) .Inginerii folosesc ecrane inteligente T5L pentru a trece Tehnologia Node-RED necesită doar un port serial pentru a se conecta la Internet și pentru a realiza interacțiunea datelor între ecranul Diwen și pagina web a browserului.Această soluție realizează funcții precum trimiterea și primirea datelor, interacțiunea cu diagrame și afișarea informațiilor de bază între ecranul inteligent și pagina web.

1. Afișarea efectului de rulare a paginii web Node-RED

(1) Folosind tehnologia Node-RED, browserul este folosit ca intrare de interacțiune, astfel încât browserul și ecranul interacționează prin portul serial pentru a realiza afișarea funcției corespunzătoare.

asva (1)
asva (2)

Pagina Tab pentru trimiterea și primirea datelor

Pagina Tab interactivă cu pictograme

asva (3)

Informații de bază Efectul paginii filă

(2) Principalele coduri de referință pentru clientul web Node-RED sunt următoarele:

{

"id": "fbb314a16ea00889",

"type": "serial in",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Portul serial primește date",

"serial": "83fb45b5f4b51d61",

"x": 390,

„y”: 140,

"fire": [

[

„685a2fb2c2dc8fba”

]

]

},

{

"id": "1ba3c6e812e03e27",

"type": "ieșire în serie",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Trimitere port serial",

"serial": "83fb45b5f4b51d61",

"x": 860,

„y”: 260,

"fire": []

},

{

"id": "5fb7f1d3d7425133",

"tip": "stare",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Monitorizați starea portului serial",

"domeniu": [

„fbb314a16ea00889”

],

"x": 390,

„y”: 200,

"fire": [

[

„3f18d1fdea398d35”

]

]

},

{

"id": "3f18d1fdea398d35",

"type": "funcție",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Extrageți starea portului serial",

"func": "let sta = msg.status.text;\nlet color = 'roșu';\nif (sta.indexOf('neconectat') >= 0) \n sta = 'Neconectat';\nelse dacă (sta.indexOf('conectat') >= 0)\n{\n sta = 'conexiune reușită';\n color = 'verde';\n}altfel\n sta = 'a apărut o eroare';\nmsg[' sarcină utilă'] = sta;\nmsg['culoare'] = culoare;\n\nreturn msg;",

„ieșiri”: 1,

„timeout”: 0,

"noerr": 0,

"initializare": "",

"finalize": "",

„libs”: [],

"x": 620,

„y”: 200,

"fire": [

[

„2ec78ff0b0b9a56f”

]

]

},

{

"id": "2ec78ff0b0b9a56f",

"type": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"grup": "4e4db779a7b91019",

"name": "Afișează starea portului serial",

"comanda": 1,

"lățime": 0,

„înălțime”: 0,

"format": "\n Stare port serial:

2.DGUSIinterfațăDesign

asva (4)

1. C51 Proiectare inginerească

Soluția folosește portul serial 2 al ecranului inteligent T5L pentru a comunica cu pagina web Node-RED.Unele coduri de referință sunt după cum urmează:

#include „sys.h”

#include „uart2.h”

#include

#include

u8 buff[200];

void main(void)

{

u16num;

u16val;

sub 16 ani;

u8i;

sys_init();

uart2_init(115200);

vechi= 0;

în timp ce (1)

{

if(este_recv_complet)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

if(strstr((char*)uart2_buf,"cmd"))

{

num= uart2_buf[3]-'0';

dacă (număr <3)

{

pentru(i=0;i<3;i++)

{

val= (num==i);

sys_write_vp(0x2300+i,(u8*)&val, 1);

}

}elseif(num<5)

{

val= (num==3);

sys_write_vp(0x2200,(u8*)&val, 1);

}

}altfel

{

sys_write_vp(0x2000,uart2_buf, recv_len/2+2);

}

recv_len= 0;

is_recv_complete= 0;

}

sys_read_vp(0x1000,(u8*)&val, 1);

dacă(val==1)

{

sys_read_vp(0x2100,buff, 50);

pentru(i=0;i<100;i++)

{

if(buff==0xff)

{

buff= 0x00;

buff[i+1]= 0x00;

pauză;

}

}

u2_send_bytes(buff,strlen(buff));

val= 0;

sys_write_vp(0x1000,(u8*)&val, 1);

}

sys_read_vp(0x2400,(u8*)&val, 1);

dacă(val!=vechi)

{

sprintf(buff,"%d", val);

u2_send_bytes(buff,strlen(buff));

vechi= val;

}

}

}


Ora postării: 28-dec-2023