Нээлттэй эхийн хөтчийн вэб хуудас ба T5L DWIN дэлгэцийн цуврал портын гүн өргөтгөл (Node-RED технологи)

——DWIN хөгжүүлэгчдийн форумаас

Энэ дугаарт бид Дивин Дэлгэцийн шинэ талбарт хэрэглэгдэх Devin Developer Forum-ын шагналт нээлттэй эхийн кейсийг танилцуулах болно - хөтчийн вэб хуудас болон T5L Divin Screen сериал портын гүнзгий өргөтгөл (Node-RED технологи) .Инженерүүд T5L ухаалаг дэлгэцийг ашиглан Node-RED технологиор дамжуулж, интернетэд холбогдохын тулд зөвхөн цуваа портыг шаарддаг бөгөөд Diwen дэлгэц болон хөтчийн вэб хуудасны хооронд өгөгдлийн харилцан үйлчлэлийг гүйцэтгэдэг.Энэхүү шийдэл нь ухаалаг дэлгэц болон вэб хуудасны хооронд өгөгдөл дамжуулах, хүлээн авах, диаграмын харилцан үйлчлэл, үндсэн мэдээллийг харуулах зэрэг функцуудыг гүйцэтгэдэг.

1. Node-RED вэб хуудас ажиллаж байгаа эффектийн дэлгэц

(1) Node-RED технологийг ашиглан хөтөчийг харилцан үйлчлэлийн хаалга болгон ашигладаг бөгөөд ингэснээр хөтөч болон дэлгэц нь цуваа портоор дамжуулан харилцан үйлчилж, харгалзах функцийг харуулах болно.

asva (1)
asva (2)

Мэдээлэл илгээх, хүлээн авах таб хуудас

Интерактив таб хуудасны дүрс тэмдэг

asva (3)

Үндсэн мэдээлэл Таб хуудасны эффект

(2) Node-RED вэб клиентийн үндсэн лавлах кодууд нь дараах байдалтай байна.

{

"id": "fbb314a16ea00889",

"төрөл": "цуваа",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Цуваа порт өгөгдөл хүлээн авдаг",

"цуваа": "83fb45b5f4b51d61",

"x": 390,

"y": 140,

"утас": [

[

"685a2fb2c2dc8fba"

]

]

},

{

"id": "1ba3c6e812e03e27",

"төрөл": "цуваа гарах",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"name": "Цуваа порт илгээж байна",

"цуваа": "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-холбогдсон') >= 0) \n sta = 'Unnected';\nlet хэрэв байвал (sta.indexOf('холбогдсон') >= 0)\n{\n sta = 'холболт амжилттай';\n өнгө = 'ногоон';\n}өөрөөр\n sta = 'алдаа гарлаа';\nmsg[' ачаалал'] = sta;\nmsg['color'] = color;\n\nбуцах мессеж;",

"гаралт": 1,

"цаг хугацаа": 0,

"noerr": 0,

"эхлүүлэх": "",

"эцсийн болгох": "",

"libs": [],

"x": 620,

"y": 200,

"утас": [

[

"2ec78ff0b0b9a56f"

]

]

},

{

"id": "2ec78ff0b0b9a56f",

"төрөл": "ui_template",

"z": "09e0777eaff7fdea",

"g": "c1661722c7db00f9",

"group": "4e4db779a7b91019",

"name": "Цуваа портын төлөвийг харуулах",

"захиалга": 1,

"өргөн": 0,

"өндөр": 0,

"формат": "\n Цуваа портын төлөв:

2.DGUSIинтерфэйсDэлчин

asva (4)

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

Энэхүү шийдэл нь Node-RED вэб хуудастай холбогдохын тулд T5L ухаалаг дэлгэцийн цуваа порт 2-ыг ашигладаг.Зарим лавлах кодууд дараах байдалтай байна.

#"sys.h"-г оруулах

#"uart2.h" оруулах

#оруулна

#оруулна

u8 buff[200];

хүчингүй гол (хүчингүй)

{

u16 тоо;

u16val;

u16 настай;

u8i;

sys_init();

uart2_init(115200);

хуучин = 0;

байхад(1)

{

хэрэв(боловор_бүрэн_бол)

{

uart2_buf[recv_len++]= 0;

uart2_buf[recv_len++]= 0;

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

{

тоо = uart2_buf[3]-'0';

хэрэв(тоо<3)

{

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

{

val= (тоо ==i);

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

}

}elseif(тоо<5)

{

val= (тоо ==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);

хэрэв(val==1)

{

sys_read_vp(0x2100, buff, 50);

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

{

хэрэв(буфф==0xff)

{

шаргал = 0x00;

buff[i+1]= 0x00;

завсарлага;

}

}

u2_send_bytes(buff,strlen(buff));

val= 0;

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

}

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

хэрэв(val!=хуучин)

{

sprintf(буфф,"%d", val);

u2_send_bytes(buff,strlen(buff));

хуучин= val;

}

}

}


Шуудангийн цаг: 2023 оны 12-р сарын 28