Open Source Browser-webpagina en T5L DWIN-scherm Seriële poort diepe uitbreiding (Node-RED-technologie)

——Van het DWIN-ontwikkelaarsforum

In dit nummer introduceren we u een bekroonde open source-case van het Devin Developer Forum voor de toepassing van Divin Screen in het nieuwe veld - browserwebpagina en diepgaande uitbreiding van de T5L Divin Screen seriële poort (Node-RED-technologie) .Ingenieurs gebruiken slimme T5L-schermen om Node-RED-technologie door te geven. Er is alleen een seriële poort nodig om verbinding te maken met internet en gegevensinteractie tussen het Diwen-scherm en de browserwebpagina te realiseren.Deze oplossing realiseert functies zoals het verzenden en ontvangen van gegevens, kaartinteractie en weergave van basisinformatie tussen het slimme scherm en de webpagina.

1. Node-RED webpagina met effectweergave

(1) Met behulp van Node-RED-technologie wordt de browser gebruikt als interactie-ingang, zodat de browser en het scherm via de seriële poort communiceren om de bijbehorende functieweergave te realiseren.

asva (1)
asva (2)

Tabblad voor het verzenden en ontvangen van gegevens

Icoon interactief tabblad

asva (3)

Basisinformatie Tabbladeffect

(2) De belangrijkste referentiecodes voor de Node-RED-webclient zijn als volgt:

{

"id": "fbb314a16ea00889",

"type": "serieel in",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Seriële poort ontvangt gegevens",

"serieel": "83fb45b5f4b51d61",

"x": 390,

"y": 140,

"draden": [

[

"685a2fb2c2dc8fba"

]

]

},

{

"id": "1ba3c6e812e03e27",

"type": "seriële uitgang",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Seriële poort verzenden",

"serieel": "83fb45b5f4b51d61",

"x": 860,

"y": 260,

"draden": []

},

{

"id": "5fb7f1d3d7425133",

"type": "status",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Status van de seriële poort controleren",

"domein": [

"fbb314a16ea00889"

],

"x": 390,

"y": 200,

"draden": [

[

"3f18d1fdea398d35"

]

]

},

{

"id": "3f18d1fdea398d35",

"type": "functie",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Status van de seriële poort extraheren",

"func": "let sta = msg.status.text;\nlet color = 'rood';\nif (sta.indexOf('niet-verbonden') >= 0) \n sta = 'Niet verbonden';\nelse if (sta.indexOf('verbonden') >= 0)\n{\n sta = 'verbinding geslaagd';\n kleur = 'groen';\n}else\n sta = 'fout opgetreden';\nmsg[' payload'] = sta;\nmsg['kleur'] = kleur;\n\nreturn msg;",

"uitgangen": 1,

"time-out": 0,

"noerr": 0,

"initialiseren": "",

"afronden": "",

"lib": [],

"x": 620,

"y": 200,

"draden": [

[

"2ec78ff0b0b9a56f"

]

]

},

{

"id": "2ec78ff0b0b9a56f",

"type": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"groep": "4e4db779a7b91019",

"name": "Seriële poortstatus weergeven",

"bestelling": 1,

"breedte": 0,

"hoogte": 0,

"formaat": "\n Status seriële poort:

2. DGUSIinterfaceDontwerp

asva (4)

1. C51 Technisch ontwerp

De oplossing maakt gebruik van T5L smart screen seriële poort 2 om te communiceren met de Node-RED-webpagina.Sommige referentiecodes zijn als volgt:

#include "sys.h"

#include "uart2.h"

#erbij betrekken

#erbij betrekken

u8 verbeterd[200];

leegte hoofd(leegte)

{

u16num;

u16val;

u16oud;

u8i;

sys_init();

uart2_init(115200);

oud= 0;

terwijl(1)

{

als(is_recv_complete)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

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

{

num= uart2_buf[3]-'0';

als(aantal<3)

{

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

{

val= (num==i);

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

}

}elseif(num<5)

{

val= (aantal==3);

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

}

}anders

{

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

}

recv_len= 0;

is_recv_complete= 0;

}

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

als(val==1)

{

sys_read_vp(0x2100,gebleekt, 50);

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

{

als(verbetering==0xff)

{

buff= 0x00;

buff[i+1]= 0x00;

pauze;

}

}

u2_send_bytes(verbetering,strlen(verbetering));

val= 0;

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

}

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

als(val!=oud)

{

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

u2_send_bytes(verbetering,strlen(verbetering));

oud= val;

}

}

}


Posttijd: 28 december 2023