Página web del navegador de código abierto y expansión profunda del puerto serie de pantalla T5L DWIN (tecnología Node-RED)

——Del foro de desarrolladores de DWIN

En este número, le presentaremos un caso de código abierto galardonado del Devin Developer Forum para la aplicación de Divin Screen en el nuevo campo: página web del navegador y expansión en profundidad del puerto serie T5L Divin Screen (tecnología Node-RED). .Los ingenieros utilizan pantallas inteligentes T5L para pasar la tecnología Node: RED solo requiere un puerto serie para conectarse a Internet y realizar la interacción de datos entre la pantalla Diwen y la página web del navegador.Esta solución realiza funciones como envío y recepción de datos, interacción de gráficos y visualización de información básica entre la pantalla inteligente y la página web.

1. Visualización del efecto de ejecución de la página web Node-RED

(1) Utilizando la tecnología Node-RED, el navegador se utiliza como entrada de interacción, de modo que el navegador y la pantalla interactúan a través del puerto serie para realizar la visualización de la función correspondiente.

asva (1)
asvá (2)

Página de pestaña de envío y recepción de datos

Página de pestaña interactiva de iconos

asvá (3)

Información básica Efecto de página de pestaña

(2) Los principales códigos de referencia del cliente web Node-RED son los siguientes:

{

"identificación": "fbb314a16ea00889",

"tipo": "entrada de serie",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "El puerto serie recibe datos",

"serie": "83fb45b5f4b51d61",

"x": 390,

"y": 140,

"cables": [

[

"685a2fb2c2dc8fba"

]

]

},

{

"id": "1ba3c6e812e03e27",

"tipo": "salida de serie",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Envío por puerto serie",

"serie": "83fb45b5f4b51d61",

"x": 860,

"y": 260,

"cables": []

},

{

"id": "5fb7f1d3d7425133",

"tipo": "estado",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Monitorear el estado del puerto serie",

"alcance": [

"fbb314a16ea00889"

],

"x": 390,

"y": 200,

"cables": [

[

"3f18d1fdea398d35"

]

]

},

{

"id": "3f18d1fdea398d35",

"tipo": "función",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Extraer estado del puerto serie",

"func": "let sta = msg.status.text;\nlet color = 'rojo';\nif (sta.indexOf('not-connected') >= 0) \n sta = 'Desconectado';\nelse if (sta.indexOf('conectado') >= 0)\n{\n sta = 'conexión exitosa';\n color = 'verde';\n}else\n sta = 'se produjo un error';\nmsg[' carga útil'] = sta;\nmsg['color'] = color;\n\nreturn msg;",

"salidas": 1,

"tiempo de espera": 0,

"noerr": 0,

"inicializar": "",

"finalizar": "",

"libras": [],

"x": 620,

"y": 200,

"cables": [

[

"2ec78ff0b0b9a56f"

]

]

},

{

"id": "2ec78ff0b0b9a56f",

"tipo": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"grupo": "4e4db779a7b91019",

"name": "Mostrar estado del puerto serie",

"orden": 1,

"ancho": 0,

"altura": 0,

"formato": "\n Estado del puerto serie:

2.DGUSIinterfazDdiseño

asvá (4)

1. Diseño de ingeniería C51

La solución utiliza el puerto serie 2 de la pantalla inteligente T5L para comunicarse con la página web de Node-RED.Algunos códigos de referencia son los siguientes:

#incluir "sys.h"

#incluir "uart2.h"

#incluir

#incluir

mejora u8[200];

vacío principal (vacío)

{

u16num;

u16val;

u16viejo;

u8i;

sys_init();

uart2_init(115200);

viejo= 0;

mientras(1)

{

si(is_recv_complete)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

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

{

número= uart2_buf[3]-'0';

si(núm<3)

{

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

{

val= (núm==i);

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

}

}elseif(núm<5)

{

val= (núm==3);

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

}

}demás

{

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(valor==1)

{

sys_read_vp(0x2100,buff, 50);

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

{

si(buff==0xff)

{

mejora = 0x00;

mejora[i+1]= 0x00;

romper;

}

}

u2_send_bytes(buff,strlen(buff));

valor= 0;

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

}

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

si(val!=antiguo)

{

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

u2_send_bytes(buff,strlen(buff));

antiguo= val;

}

}

}


Hora de publicación: 28 de diciembre de 2023