Page Web du navigateur Open Source et extension profonde du port série de l'écran T5L DWIN (technologie Node-RED)

——Depuis le forum des développeurs DWIN

Dans ce numéro, nous vous présenterons un cas open source primé du Devin Developer Forum pour l'application de Divin Screen dans le nouveau domaine - page Web du navigateur et extension approfondie du port série T5L Divin Screen (technologie Node-RED) .Les ingénieurs utilisent les écrans intelligents T5L pour adopter la technologie Node-RED qui ne nécessite qu'un port série pour se connecter à Internet et réaliser une interaction de données entre l'écran Diwen et la page Web du navigateur.Cette solution réalise des fonctions telles que l'envoi et la réception de données, l'interaction graphique et l'affichage d'informations de base entre l'écran intelligent et la page Web.

1. Affichage de l'effet d'exécution de la page Web Node-RED

(1) Grâce à la technologie Node-RED, le navigateur est utilisé comme entrée d'interaction, de sorte que le navigateur et l'écran interagissent via le port série pour réaliser l'affichage de la fonction correspondante.

asva (1)
asva (2)

Page de l'onglet Envoi et réception de données

Page à onglets interactifs d'icônes

asva (3)

Informations de base Effet de la page à onglet

(2) Les principaux codes de référence du client web Node-RED sont les suivants :

{

"identifiant": "fbb314a16ea00889",

"type": "entrée série",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Le port série reçoit les données",

"série": "83fb45b5f4b51d61",

"x": 390,

"o": 140,

"fils": [

[

"685a2fb2c2dc8fba"

]

]

},

{

"identifiant": "1ba3c6e812e03e27",

"type": "sortie série",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Envoi par port série",

"série": "83fb45b5f4b51d61",

"x": 860,

"y": 260,

"fils": []

},

{

"identifiant": "5fb7f1d3d7425133",

"type": "statut",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Surveiller l'état du port série",

"portée": [

"fbb314a16ea00889"

],

"x": 390,

"o": 200,

"fils": [

[

"3f18d1fdea398d35"

]

]

},

{

"identifiant": "3f18d1fdea398d35",

"type": "fonction",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Extraire l'état du port série",

"func": "let sta = msg.status.text;\nlet color = 'red';\nif (sta.indexOf('not-connected') >= 0) \n sta = 'Non connecté';\nelse if (sta.indexOf('connected') >= 0)\n{\n sta = 'connexion réussie';\n color = 'vert';\n}else\n sta = 'une erreur s'est produite';\nmsg[' payload'] = sta;\nmsg['color'] = color;\n\nreturn msg;",

"sorties": 1,

"délai d'attente": 0,

"noerr": 0,

"initialiser": "",

"finaliser": "",

"libs": [],

"x": 620,

"o": 200,

"fils": [

[

"2ec78ff0b0b9a56f"

]

]

},

{

"identifiant": "2ec78ff0b0b9a56f",

"type": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"groupe": "4e4db779a7b91019",

"name": "Afficher l'état du port série",

"commande": 1,

"largeur": 0,

"hauteur": 0,

"format": "\n État du port série :

2.DGUSIinterfaceDconcevoir

asva (4)

1. C51 Conception technique

La solution utilise le port série 2 de l'écran intelligent T5L pour communiquer avec la page Web Node-RED.Certains codes de référence sont les suivants :

#include "sys.h"

#include "uart2.h"

#inclure

#inclure

buff u8[200] ;

vide principal (vide)

{

u16num;

u16val;

moins de 16 ans;

u8i;

sys_init();

uart2_init(115200);

vieux= 0 ;

pendant que(1)

{

si (is_recv_complete)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

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

{

num=uart2_buf[3]-'0';

si(num<3)

{

pour(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);

}

}autre

{

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

}

recv_len=0;

is_recv_complete= 0 ;

}

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

si(val==1)

{

sys_read_vp(0x2100,buff, 50);

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

{

si(buff==0xff)

{

chamois= 0x00 ;

buff[i+1]= 0x00;

casser;

}

}

u2_send_bytes(buff,strlen(buff));

val= 0;

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

}

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

si(val!=ancien)

{

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

u2_send_bytes(buff,strlen(buff));

vieux=val;

}

}

}


Heure de publication : 28 décembre 2023