- uint8_t mhrLength(uint8_t *fcf)
- {
- uint8_t idCompression;
- uint8_t len = MHR_INDEX_ADDRESS;
-
- if (fcf[MHR_INDEX_FC1] & FC1_SECURITY_ENABLED)
- return 0xFF; // not supported
- idCompression = (fcf[0] & FC1_PAN_ID_COMPRESSION);
- if (fcf[MHR_INDEX_FC2] & 0x08){ // short or ext. address
- len += 4; // pan id + short address
- if (fcf[MHR_INDEX_FC2] & 0x04) // ext. address
- len += 6; // diff to short address
- }
- if (fcf[MHR_INDEX_FC2] & 0x80){ // short or ext. address
- len += 2;
- if (!idCompression)
- len += 2;
- if (fcf[MHR_INDEX_FC2] & 0x40) // ext. address
- len += 6; // diff to short address
- }
- return len;
- }
-
-