登录站点

用户名

密码

我初学ZigBee的体会之四

已有 322 次阅读  2009-09-29 15:41   标签ZigBee  体会  初学 
这是我添加的程序:

      这个函数PRIVATE void vSendData_1(void), 原来例程上没有,是我加的,
      要把从PC上的UART送过来的一个字节数通过它送到Router,

               */
PRIVATE void vSendData_1(void)

{
       AF_Transaction_s asTransaction[1];    // 这句什么含义 ?
                                            

  /* Specify the transaction sequence number,   JN-RM-2018 p15,  */

// PUBLIC uint8 u8AfGetTransactionSequence(bool_t bAutoIncrease) in aps.h,

            /* Specify the transaction sequence number,
                U8SequenceNum: 标识KVP和MSG数据帧的序列号,这个号应该是单增的,
                用来跟踪数据的丢包。       */

                   asTransaction[0].u8SequenceNum = u8AfGetTransactionSequence(TRUE);

// 每次只发送一个字节,把1赋给u8TransactionDataLen !!!

                 asTransaction[0].u.sMsg.u8TransactionDataLen = 1;


// 把cCharIn的内容赋给au8TransactionData:

               asTransaction[0].u.sMsg.au8TransactionData[0] = cCharIn;


// 这个函数就是向协议栈发送了相应的数据发送请求将所有的数据发送到Router。
//    这是一个重点函数 !!!   它规定了MSG格式 !!!


  (void)afdeDataRequest(APS_ADDRMODE_SHORT,           /* Address type, Direct tx, */
                          add16shortAdd,              /*  Router的短地址,  */
                          WSN_DATA_SOURCE_ENDPOINT,   /* Router的端口号, */
                          WSN_DATA_SINK_ENDPOINT,     /* Coordinator的端口号, */
                          WSN_PROFILE_ID,             /* Profile ID */
                          WSN_CID_SENSOR_READINGS,    /* Cluster ID */
                          AF_MSG,                     /* 规定了MSG格式 */
                          1,                          /* 本次请求发送的数据事务的数量 */
                          asTransaction,              /* Transaction data */
                          APS_TXOPTION_NONE,          /* Transmit options,
                                                       没有任何选项, */
                          SUPPRESS_ROUTE_DISCOVERY,   /* Route discovery mode
                                                         使用强制路由发现模式   */
                          0);                         /* 设置为0那么协议栈将采用2倍的MaxDepth,  */


        }

/*
        Macro Definitions  in WSN_Profile.h,

#define WSN_DATA_SINK_ENDPOINT      0x40     是指Coordinator,
#define WSN_DATA_SOURCE_ENDPOINT    0x41     是指Router,
#define WSN_PROFILE_ID              0x123    这是由ZigBee联盟分配的 !!!
#define WSN_CID_SENSOR_READINGS     0x12     这是怎么定义的?它不代表数据包
                                             的大小,

          Coordinator处的接收程序添加完毕,

上一篇: 3G入门理论知识详细介绍 下一篇: Zigbee技术起源

分享 举报