——DWIN Developer Forum-ից
Այս թողարկումում մենք ձեզ կներկայացնենք Devin Developer Forum-ի մրցանակակիր բաց կոդով դեպքը նոր ոլորտում Divin Screen-ի կիրառման համար՝ դիտարկիչի վեբ էջ և T5L Divin Screen սերիական պորտի խորը ընդլայնում (Node-RED տեխնոլոգիա) .Ինժեներները օգտագործում են T5L խելացի էկրաններ Node-RED տեխնոլոգիան փոխանցելու համար միայն սերիական միացք է պահանջում՝ ինտերնետին միանալու և Diwen էկրանի և զննարկիչի վեբ էջի միջև տվյալների փոխազդեցությունը իրականացնելու համար:Այս լուծումն իրականացնում է այնպիսի գործառույթներ, ինչպիսիք են տվյալների ուղարկումը և ստացումը, գծապատկերների փոխազդեցությունը և հիմնական տեղեկատվության ցուցադրումը խելացի էկրանի և վեբ էջի միջև:
1. Node-RED վեբ էջի գործարկման էֆեկտի ցուցադրում
(1) Օգտագործելով Node-RED տեխնոլոգիան, զննարկիչը օգտագործվում է որպես փոխազդեցության մուտք, այնպես որ զննարկիչը և էկրանը փոխազդում են սերիական պորտի միջոցով՝ իրականացնելու համապատասխան գործառույթի ցուցադրումը:
Տվյալների ուղարկման և ստացման ներդիրի էջ
Պատկերակի ինտերակտիվ ներդիրի էջ
Հիմնական տեղեկություններ Ներդիրի էջի էֆեկտ
(2) Node-RED վեբ հաճախորդի հիմնական հղման կոդերը հետևյալն են.
{
"id": "fbb314a16ea00889",
«տեսակ»՝ «սերիական մուտք»,
«z»: «09e0777eaff7fdea»,
«g»: «c1661722c7db00f9»,
"name": "Սերիական նավահանգիստը ստանում է տվյալներ",
«սերիալ»՝ «83fb45b5f4b51d61»,
«x»: 390,
«y»: 140,
«լարեր»:
[
«685a2fb2c2dc8fba»
]
]
},
{
"id": "1ba3c6e812e03e27",
«տեսակ»՝ «սերիական դուրս»,
«z»: «09e0777eaff7fdea»,
«g»: «c1661722c7db00f9»,
"name": "Serial port ուղարկում",
«սերիալ»՝ «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": "թող sta = msg.status.text;\nթող գույն = 'կարմիր';\nif (sta.indexOf('կապված չէ') >= 0) \n sta = 'Չկապված';\nse եթե (sta.indexOf('միացված') >= 0)\n{\n sta = 'միացումը հաջողվեց';\n գույնը = 'կանաչ';\n}else\n sta = 'սխալ է տեղի ունեցել';\nmsg[' payload'] = sta;\nmsg['color'] = գույն;\n\nվերադարձ հաղորդագրություն;",
«ելքեր»՝ 1,
«թայմաութ»՝ 0,
«noerr»: 0,
"initialize": "",
"վերջացնել": "",
«libs»: [],
«x»: 620,
«y»: 200,
«լարեր»:
[
«2ec78ff0b0b9a56f»
]
]
},
{
"id": "2ec78ff0b0b9a56f",
"type": "ui_template",
«z»: «09e0777eaff7fdea»,
«g»: «c1661722c7db00f9»,
«խումբ»: «4e4db779a7b91019»,
"name": "Ցուցադրել սերիական պորտի կարգավիճակը",
«պատվեր»՝ 1,
«լայնություն»՝ 0,
«բարձրություն»՝ 0,
«ձևաչափ»:\n Սերիական պորտի կարգավիճակը՝
2.DGUSIինտերֆեյսDնշան
1. C51 ինժեներական դիզայն
Լուծումն օգտագործում է T5L խելացի էկրանի սերիական պորտ 2՝ Node-RED վեբ էջի հետ հաղորդակցվելու համար:Որոշ հղման կոդերը հետևյալն են.
#include «sys.h»
#ներառել «uart2.h»
#ներառում
#ներառում
u8 բուֆ[200];
դատարկ հիմնական (անվավեր)
{
u16 համարը;
u16val;
u16 տարեկան;
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)
{
համար (i=0;i<3;i++)
{
val= (num==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);
համար (i=0;i<100;i++)
{
if (buff==0xff)
{
buff= 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(buff,"%d", val);
u2_send_bytes (buff,strlen(buff));
հին= val;
}
}
}
Հրապարակման ժամանակը՝ Dec-28-2023