📄 从零开始学习zstack之8.mht
字号:
=88=E4=BA=86=E4=B8=8B=EF=BC=8C=E8=BF=99=E4=B8=AA=E4=BE=8B=E5=AD=90=E4=BC=BC=
=E4=B9=8E=E8=BF=98=E4=B8=8E=E8=AE=BE=E5=A4=87=E7=9A=84=E7=BB=91=E5=AE=9A=E6=
=9C=89=E5=85=B3=E7=B3=BB=EF=BC=8C=E5=9B=A0=E4=B8=BA=E5=9C=A8=E6=8C=89=E5=BB=
=BA=E5=A4=84=E7=90=86=E7=A8=8B=E5=BA=8F=E4=B8=AD=E5=8F=91=E7=8E=B0=EF=BC=9A=
<BR><FONT=20
color=3D#808080>if ( keys & HAL_KEY_SW_2=20
)<BR> =20
{<BR> HalLedSet (=20
HAL_LED_4, HAL_LED_MODE_OFF );</FONT></P>
<P><FONT =
color=3D#808080> //=20
Initiate an End Device Bind Request for the =
mandatory=20
endpoint<BR> =20
dstAddr.addrMode =3D=20
Addr16Bit;<BR> =20
dstAddr.addr.shortAddr =3D 0x0000; //=20
Coordinator<BR> =20
ZDP_EndDeviceBindReq( &dstAddr,=20
=
NLME_GetShortAddr(),<BR> &=
nbsp; &n=
bsp; =20
=
GenericApp_epDesc.endPoint,<BR> =
&=
nbsp; =20
=
GENERICAPP_PROFID,<BR> &nb=
sp; &nbs=
p; =20
GENERICAPP_MAX_CLUSTERS, (cId_t=20
=
*)GenericApp_ClusterList,<BR> &n=
bsp; &nb=
sp; =20
GENERICAPP_MAX_CLUSTERS, (cId_t=20
=
*)GenericApp_ClusterList,<BR> &n=
bsp; &nb=
sp; =20
FALSE =
);<BR>}<BR>=E5=BE=88=E6=98=8E=E6=98=BE=E8=BF=99=E9=87=8C=E6=8C=89=E9=94=AE=
2=EF=BC=88=E5=8F=B3=E9=94=AE=EF=BC=89=E6=98=AF=E5=8F=91=E9=80=81=E7=BB=91=
=E5=AE=9A=E8=AF=B7=E6=B1=82=E7=9A=84=E5=91=BD=E4=BB=A4=E3=80=82<BR>if ( =
keys=20
& HAL_KEY_SW_4 )<BR> =20
{<BR> HalLedSet (=20
HAL_LED_4, HAL_LED_MODE_OFF );</FONT></P>
<P><FONT =
color=3D#808080> //=20
Initiate a Match Description Request (Service=20
Discovery)<BR> =20
dstAddr.addrMode =3D=20
AddrBroadcast;<BR> =
dstAddr.addr.shortAddr =3D=20
=
NWK_BROADCAST_SHORTADDR;<BR> =20
ZDP_MatchDescReq( &dstAddr,=20
=
NWK_BROADCAST_SHORTADDR,<BR> &nb=
sp; &nbs=
p; =20
=
GENERICAPP_PROFID,<BR> &nb=
sp; &nbs=
p; =20
GENERICAPP_MAX_CLUSTERS, (cId_t=20
=
*)GenericApp_ClusterList,<BR> &n=
bsp; &nb=
sp; =20
GENERICAPP_MAX_CLUSTERS, (cId_t=20
=
*)GenericApp_ClusterList,<BR> &n=
bsp; &nb=
sp; =20
FALSE );<BR> }<BR><FONT=20
=
color=3D#000000>=E6=98=BE=E7=84=B6=E6=8C=89=E9=94=AE4=EF=BC=88=E5=B7=A6=EF=
=BC=89=E6=98=AF=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80=E4=B8=AA=E5=8C=B9=E9=85=
=8D=E6=8F=8F=E8=BF=B0=E7=AC=A6=E8=AF=B7=E6=B1=82=EF=BC=8C=E4=B9=9F=E5=B0=B1=
=E6=98=AF=E5=8F=91=E7=8E=B0=E6=9C=8D=E5=8A=A1=EF=BC=8C=E6=88=96=E8=80=85=E5=
=8F=AB=E8=87=AA=E5=8A=A8=E5=AF=BB=E6=B1=82=E5=8C=B9=E9=85=8D=E8=AE=BE=E5=A4=
=87=E3=80=82<BR>=E8=BF=99=E5=B0=B1=E4=B8=8D=E6=80=AA=E6=88=91=E6=8C=89=E9=
=94=AE=E6=9C=89=E5=8F=8D=E6=98=A0=E4=BA=86=EF=BC=81<BR>=E8=80=8C=E4=B8=94=
=E5=9C=A8=E5=8F=91=E9=80=81=E6=95=B0=E6=8D=AE=E5=92=8C=E6=8E=A5=E6=94=B6=E6=
=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E5=87=BD=E6=95=B0=E5=8F=91=E7=8E=B0=EF=BC=
=9A</FONT><BR>void=20
GenericApp_SendTheMessage( void )<BR>{<BR> =
char=20
theMessageData[] =3D "Hello World";</FONT></P>
<P><FONT color=3D#a9a9a9><FONT =
color=3D#808080> if (=20
AF_DataRequest( &GenericApp_DstAddr,=20
=
&GenericApp_epDesc,<BR> &nbs=
p;  =
; =20
=
GENERICAPP_CLUSTERID,<BR> =
&=
nbsp; =20
(byte)osal_strlen( theMessageData ) +=20
=
1,<BR> &=
nbsp; =20
(byte=20
=
*)&theMessageData,<BR>  =
; =
=20
=
&GenericApp_TransID,<BR> &nb=
sp; &nbs=
p; =20
AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) =3D=3D =
afStatus_SUCCESS=20
)<BR> {<BR> // =
Successfully=20
requested to be sent.<BR> }<BR> =20
else<BR> {<BR> // Error =
occurred=20
in request to send.<BR> =20
=
}<BR>}</FONT><BR></FONT>=E5=B1=85=E7=84=B6=E5=8F=91=E9=80=81=E7=9A=84=E6=98=
=AF=E4=B8=80=E4=B8=AA=E5=AD=97=E7=AC=A6=E4=B8=B2=E2=80=9CHello=20
World=E2=80=9D=E3=80=82<BR><FONT =
color=3D#808080>void=20
GenericApp_MessageMSGCB( afIncomingMSGPacket_t =
*pkt=20
)<BR>{<BR> switch ( pkt->clusterId =
)<BR> =20
{<BR> case=20
=
GENERICAPP_CLUSTERID:<BR> =20
// "the" message<BR>#if defined( LCD_SUPPORTED=20
)<BR> =
HalLcdWriteScreen(=20
(char*)pkt->cmd.Data, "rcvd" );<BR>#elif =
defined(=20
WIN32 )<BR> =
WPRINTSTR(=20
pkt->cmd.Data=20
);<BR>#endif<BR> =20
break;<BR> =20
=
}<BR>}<BR></FONT>=E6=8E=A5=E6=94=B6=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E5=
=87=BD=E6=95=B0=E9=87=8C=E5=B1=85=E7=84=B6=E8=A6=81=E9=80=9A=E8=BF=87=E6=B6=
=B2=E6=99=B6=E6=98=BE=E7=A4=BA=EF=BC=8C=E6=9C=AC=E4=BA=BA=E8=BF=99=E9=87=8C=
=E7=9A=84=E6=B6=B2=E6=99=B6=E6=9A=82=E6=97=B6=E6=B2=A1=E6=9C=89=E7=A7=BB=E6=
=A4=8D=E8=BF=87=E6=9D=A5=EF=BC=8C=E5=9B=A0=E4=B8=BA=E6=9A=82=E6=97=B6=E8=BF=
=98=E4=B8=8D=E5=85=B7=E5=A4=87=E9=82=A3=E4=B8=AA=E5=AE=9E=E5=8A=9B=EF=BC=8C=
=E6=80=AA=E4=B8=8D=E5=BE=97=E7=9C=8B=E4=B8=8D=E5=88=B0=E5=8F=91=E9=80=81=E6=
=95=B0=E6=8D=AE=E7=9A=84=E7=8A=B6=E5=86=B5=EF=BC=81<BR>=E8=BF=99=E9=87=8C=
=E6=9C=AC=E4=BA=BA=E5=B0=B1=E8=87=AA=E4=BD=9C=E8=81=AA=E6=98=8E=E7=9A=84=E6=
=8A=8A=E4=BB=A5=E5=89=8DSampleApp=E4=BE=8B=E5=AD=90=E9=87=8C=E9=9D=A2=E7=9A=
=84=E4=B8=80=E5=8F=A5=E8=AF=9D=E5=8A=A0=E8=BF=87=E6=9D=A5=E4=BA=86=EF=BC=9A=
<BR><FONT=20
color=3D#808080>void GenericApp_MessageMSGCB(=20
afIncomingMSGPacket_t *pkt )<BR>{<BR> =
switch (=20
pkt->clusterId )<BR> =
{<BR> =20
case=20
=
GENERICAPP_CLUSTERID:<BR> =20
// "the" =
message<BR> <FONT=20
color=3D#0000ff>HalLedBlink( HAL_LED_4, 4, 50, =
(500)=20
);</FONT><BR>#if defined( LCD_SUPPORTED=20
)<BR> =
HalLcdWriteScreen(=20
(char*)pkt->cmd.Data, "rcvd" );<BR>#elif =
defined(=20
WIN32 )<BR> =
WPRINTSTR(=20
pkt->cmd.Data=20
);<BR>#endif<BR> =20
break;<BR> =20
=
}<BR>}<BR></FONT>=E9=BA=BD=E6=83=B3=E5=88=B0=E5=95=8A=EF=BC=8C=E8=BF=99=E4=
=B9=88=E4=B8=80=E5=8A=A0=E5=B1=85=E7=84=B6=E5=B0=B1=E6=9C=89=E5=8F=8D=E5=BA=
=94=E4=BA=86=EF=BC=8Co(=E2=88=A9_=E2=88=A9)o=E2=80=A6=EF=BC=81=E6=88=91=E4=
=B8=8D=E6=84=A7=E6=98=AF=E5=A4=A9=E6=89=8D=E7=9A=84=E6=8E=A5=E7=8F=AD=E4=BA=
=BA=E5=95=8A=EF=BC=81<BR>=E5=85=B6=E5=AE=9E=E8=BF=99=E9=87=8C=E5=BE=88=E7=
=AE=80=E5=8D=95=E7=9A=84=E4=BA=86=EF=BC=8C=E5=B0=B1=E6=98=AF=E6=8E=A5=E6=94=
=B6=E5=88=B0=E6=95=B0=E6=8D=AE=E5=90=8E=E9=97=AA=E7=83=814=E4=B8=8B=E7=81=
=AF=EF=BC=8C=E9=97=B4=E9=9A=940.5S=E3=80=82=E5=9B=A0=E4=B8=BA=E4=BB=8E=EF=
=BC=9A<BR><FONT=20
color=3D#808080>if ( events & =
GENERICAPP_SEND_MSG_EVT=20
)<BR> {<BR> // Send =
"the"=20
message<BR> =20
=
GenericApp_SendTheMessage();<BR> //=20
Setup to send message =
again<BR> =20
osal_start_timerEx(=20
=
GenericApp_TaskID,<BR> &nb=
sp; &nbs=
p; =20
=
GENERICAPP_SEND_MSG_EVT,<BR> &nb=
sp; &nbs=
p; =20
GENERICAPP_SEND_MSG_TIMEOUT =
);<BR> //=20
return unprocessed events<BR> =
return=20
(events ^ GENERICAPP_SEND_MSG_EVT);<BR> =20
=
}<BR></FONT>=E8=BF=99=E9=87=8C=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=87=BA=EF=BC=8C=
=E8=BF=99=E4=B8=AA=E4=BE=8B=E5=AD=90=E5=BE=88=E6=98=8E=E6=98=BE=E4=BB=85=E4=
=BB=85=E6=98=AF=E4=B8=AA=E5=8F=91=E9=80=81=E5=91=A8=E6=9C=9F=E4=BF=A1=E6=81=
=AF=E7=9A=84=E4=BE=8B=E5=AD=90=E3=80=82=E6=89=80=E4=BB=A5LED4=E5=B0=B1=E5=
=91=A8=E6=9C=9F=E6=80=A7=E7=9A=84=E9=97=AA=E7=83=814=E4=B8=8B=EF=BC=8C=E5=
=BD=93=E7=84=B6=E6=98=AF=E5=8D=8F=E8=B0=83=E5=99=A8=E5=8F=91=E9=80=81=EF=BC=
=8C=E8=B7=AF=E7=94=B1=E5=99=A8=E9=97=AA=E7=83=81=EF=BC=8C=E8=B7=AF=E7=94=B1=
=E5=99=A8=E5=8F=91=E9=80=81=EF=BC=8C=E5=8D=8F=E8=B0=83=E5=99=A8=E9=97=AA=E7=
=83=81=E3=80=82<BR>=E4=BD=86=E6=98=AF=E8=BF=99=E4=BE=8B=E5=AD=90=E9=87=8C=
=E4=BD=93=E7=8E=B0=E4=BA=86=E7=BB=91=E5=AE=9A=E7=9A=84=E6=A6=82=E5=BF=B5=EF=
=BC=8C=E5=BA=94=E8=AF=A5=E8=AF=B4=E6=98=AF=E4=BB=8E=E5=9F=BA=E6=9C=AC=E5=8A=
=9F=E8=83=BD=E4=B8=8A=E5=BE=88=E9=BD=90=E5=85=A8=E7=9A=84=E4=B8=80=E4=B8=AA=
=E4=BE=8B=E5=AD=90=EF=BC=8C=E8=80=8C=E4=B8=94=E5=9C=A8ZSTACK=E4=B8=8A=E5=AE=
=9E=E7=8E=B0=E6=97=A0=E7=BA=BF=E7=BD=91=E7=BB=9C=E6=95=B0=E4=BC=A0=EF=BC=8C=
=E6=B2=A1=E6=9C=89=E4=BB=BB=E4=BD=95=E5=A4=9A=E4=BD=99=E7=9A=84=E5=8A=9F=E8=
=83=BD=E3=80=82=E6=89=80=E4=BB=A5=E8=AF=A5=E4=BE=8B=E5=AD=90=E6=98=AF=E4=B8=
=80=E4=B8=AA=E5=85=B8=E5=9E=8B=E7=9A=84ZSTACK=E6=A8=A1=E6=9D=BF=EF=BC=8C=E4=
=B9=9F=E5=B0=B1=E6=98=AF=E4=B8=BA=E7=94=A8=E6=88=B7=E6=8F=90=E4=BE=9B=E4=BA=
=86=E4=B8=80=E4=B8=AA=E9=80=9A=E7=94=A8=E6=A8=A1=E6=9D=BF=E5=8F=AF=E4=BB=A5=
=E9=80=9A=E8=BF=87=E8=BF=99=E4=B8=AA=E5=BB=BA=E7=AB=8B=E8=87=AA=E5=B7=B1=E7=
=9A=84=E5=BA=94=E7=94=A8=E3=80=82=E5=85=B3=E4=BA=8E=E5=A6=82=E4=BD=95=E5=9C=
=A8=E8=BF=99=E4=B8=AA=E4=BE=8B=E5=AD=90=E4=B8=8A=E5=BB=BA=E7=AB=8B=E3=80=81=
=E4=BF=AE=E6=94=B9=E6=88=90=E8=87=AA=E5=B7=B1=E7=9A=84=E5=B7=A5=E7=A8=8B=E5=
=92=8C=E5=BA=94=E7=94=A8=E9=A1=B9=E7=9B=AE=E8=AF=A6=E7=BB=86=E8=A7=81=E6=96=
=87=E6=A1=A3=EF=BC=9A<BR>Create=20
New Application For The=20
=
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -