Веб-сторінка браузера з відкритим вихідним кодом і глибоке розширення послідовного порту екрана T5L DWIN (технологія Node-RED)

——З форуму розробників DWIN

У цьому випуску ми представимо вам відзначений нагородами приклад із відкритим вихідним кодом Форуму розробників Devin щодо застосування Divin Screen у новій сфері – веб-сторінці браузера та поглибленому розширенню послідовного порту T5L Divin Screen (технологія Node-RED) .Інженери використовують інтелектуальні екрани T5L для передачі Node. Для технології RED потрібен лише послідовний порт для підключення до Інтернету та реалізації взаємодії даних між екраном Diwen і веб-сторінкою браузера.Це рішення реалізує такі функції, як надсилання та отримання даних, взаємодія діаграм і відображення основної інформації між розумним екраном і веб-сторінкою.

1. Ефект запуску веб-сторінки Node-RED

(1) Використовуючи технологію Node-RED, браузер використовується як вхід для взаємодії, так що браузер і екран взаємодіють через послідовний порт для реалізації відповідної функції відображення.

асва (1)
асва (2)

Вкладка «Відправлення та отримання даних».

Сторінка інтерактивної вкладки піктограм

асва (3)

Основна інформація Ефект сторінки вкладки

(2) Основні довідкові коди для веб-клієнта Node-RED такі:

{

"id": "fbb314a16ea00889",

"тип": "послідовний вхід",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Послідовний порт отримує дані",

"serial": "83fb45b5f4b51d61",

"x": 390,

"y": 140,

"дроти": [

[

"685a2fb2c2dc8fba"

]

]

},

{

"id": "1ba3c6e812e03e27",

"тип": "послідовний вихід",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Надсилання через послідовний порт",

"serial": "83fb45b5f4b51d61",

"x": 860,

"y": 260,

"дроти": []

},

{

"id": "5fb7f1d3d7425133",

"тип": "статус",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Моніторинг стану послідовного порту",

"область": [

"fbb314a16ea00889"

],

"x": 390,

"y": 200,

"дроти": [

[

"3f18d1fdea398d35"

]

]

},

{

"id": "3f18d1fdea398d35",

"тип": "функція",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Витягнути стан послідовного порту",

"func": "let sta = msg.status.text;\nlet color = 'red';\nif (sta.indexOf('not-connected') >= 0) \n sta = 'Unconnected';\nelse if (sta.indexOf('connected') >= 0)\n{\n sta = 'з'єднання вдалось';\n color = 'зелений';\n}else\n sta = 'сталася помилка';\nmsg[' корисне навантаження'] = sta;\nmsg['color'] = колір;\n\nповернути повідомлення;",

"виходи": 1,

"тайм-аут": 0,

"noerr": 0,

"ініціалізувати": "",

"завершити": "",

"libs": [],

"x": 620,

"y": 200,

"дроти": [

[

"2ec78ff0b0b9a56f"

]

]

},

{

"id": "2ec78ff0b0b9a56f",

"type": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"група": "4e4db779a7b91019",

"name": "Відображення стану послідовного порту",

"порядок": 1,

"ширина": 0,

"висота": 0,

"формат": "\n Стан послідовного порту:

2.DGUSIінтерфейсDesign

асва (4)

1. C51 Інженерний дизайн

Рішення використовує послідовний порт 2 смарт-екрана T5L для зв’язку з веб-сторінкою Node-RED.Ось деякі довідкові коди:

#include "sys.h"

#include "uart2.h"

#включати

#включати

u8 бафф [200];

void main(void)

{

u16num;

u16val;

u16old;

u8i;

sys_init();

uart2_init(115200);

старий= 0;

поки (1)

{

if(is_recv_complete)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

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

{

num= uart2_buf[3]-'0';

якщо (кількість <3)

{

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

}

}інше

{

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

}

recv_len= 0;

is_recv_complete= 0;

}

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

якщо (значення==1)

{

sys_read_vp(0x2100,бафф, 50);

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

{

if(buff==0xff)

{

бафф= 0x00;

buff[i+1]= 0x00;

перерва;

}

}

u2_send_bytes(buff,strlen(buff));

значення = 0;

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

}

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

якщо (val!=старий)

{

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

u2_send_bytes(buff,strlen(buff));

старий= вал;

}

}

}


Час публікації: 28 грудня 2023 р