This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Zigbee install codes list contend problem

I am writing a coordinator application based on the zigbee CLI example.
I am using SDK for Thread and Zigbee v4.1.


I am using a function in zboss_api called zb_secur_ic_get_list(zb_uint8_t* table, zb_uint8_t *cnt) in order to get information about the added install codes. I found out that the content of the structure of returned back in “table” looks lik this:

 

typedef zb_uint8_t zb_128bit_ic_t[18];  /*!< 16 byte / 128-bit code * 2byte CRC.*/

typedef zb_128bit_ic_t zb_instal_code_t;

 

/** @brief Install Code Table Record Format */

typedef ZB_PACKED_PRE struct bdb_secur_ic_table_record_s

{

  zb_ieee_addr_t ext_addr;      /*!< 64-bit IEEE address that is unique to every device.*/

  zb_ic_types_t  icType;              /*!< install code type */

  zb_uint8_t bByte;                   /* Byte - definition   unknown */

  zb_instal_code_t instal_code; /*!< install code bytes + CRC */

}

ZB_PACKED_STRUCT

bdb_secur_ic_table_record_t;

 

So writing Install Codes with zb_secur_ic_add(…) and reading them back with zb_secur_ic_get_list(…) works fine:

 

Nr 0:

   Device Extended Address: 0x804B50FFFEE2756F

   Keytype: 3 (ZB_IC_TYPE_128)

   Key: 4205B841EB5656B86DF2F1887EFDBE032C37

   ?: 0

 

So I write, delete and read back install codes works perfect for some time. But at one point zb_secur_ic_get_list(…) only returnes back “0xFF” as contend of some install code entrys:

 

Nr 0:

   Device Extended Address: 0xFFFFFFFFFFFFFFFF

   Keytype: 255 (Unknowen)

   Key: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

   ?: 255

 

The maximum number of install codes “ZB_CONFIG_N_APS_KEY_PAIR_ARR_MAX_SIZE” is set to 200.

Currently I am only using 15 install codes at the same time.

 

Do you have any Idea, what could possibly lead to that problem?

 

Best regards

 

Lutz

Parents
  • Another question from this area:

    To make sure the function zb_secur_ic_get_list(…) is returning correct content, I wanted to check if reading back single install codes with “zb_ret_t zb_secur_ic_get_by_idx(zb_uint8_t* param, zb_uint8_t index)” returns the same for the entries in question.

    The problem here is:

    The return value of zb_secur_ic_get_by_idx(…) is always “RET_ERROR” / -1.

    Even if all entrys in zb_secur_ic_get_list(…) are ok.

    In my code it looks like this:

     

         zb_uint8_t    testBuffer[80];

         memset(testBuffer, 0, sizeof(testBuffer));

         status = zb_secur_ic_get_by_idx(testBuffer, entryNr);

     

    Did anyone use the function zb_secur_ic_get_by_idx(…) and got correct results?

    Best regards

    Lutz

     

Reply
  • Another question from this area:

    To make sure the function zb_secur_ic_get_list(…) is returning correct content, I wanted to check if reading back single install codes with “zb_ret_t zb_secur_ic_get_by_idx(zb_uint8_t* param, zb_uint8_t index)” returns the same for the entries in question.

    The problem here is:

    The return value of zb_secur_ic_get_by_idx(…) is always “RET_ERROR” / -1.

    Even if all entrys in zb_secur_ic_get_list(…) are ok.

    In my code it looks like this:

     

         zb_uint8_t    testBuffer[80];

         memset(testBuffer, 0, sizeof(testBuffer));

         status = zb_secur_ic_get_by_idx(testBuffer, entryNr);

     

    Did anyone use the function zb_secur_ic_get_by_idx(…) and got correct results?

    Best regards

    Lutz

     

Children
No Data
Related