I recently enabled characteristic value notifications in my application on several different attributes. I noticed that when 4+ values change at the same time I start getting MSG_BUFFER_NOT_AVAIL error status returned byGATTServApp_ProcessCharCfg.
My questions:
* What is the size limit that triggers the MSG_BUFFER_NOT_AVAIL return code.
* Is it based on # of bytes or # of packets ?
* Is there anyway to increase the size or to enable buffering using the osal_memory dynamic memory allocations?
Here is an example code:
// See if Notification has been enabled
stat = GATTServApp_ProcessCharCfg( qqqqConfigCoordinates, (uint8 *)&qqqqCoordinates,
FALSE, qqqqAttrTbl, GATT_NUM_ATTRS( qqqqAttrTbl ),
INVALID_TASK_ID );
if (stat!=SUCCESS) lastqqqqErrorStatus = stat;
I see the lastqqqqErrorStatus == 4.
According to comdef.h:
/*** Generic Status Return Values ***/
#define SUCCESS 0x00
#define FAILURE 0x01
#define INVALIDPARAMETER 0x02
#define INVALID_TASK 0x03
#define MSG_BUFFER_NOT_AVAIL 0x04
#define INVALID_MSG_POINTER 0x05
#define INVALID_EVENT_ID 0x06
#define INVALID_INTERRUPT_ID 0x07
#define NO_TIMER_AVAIL 0x08
#define NV_ITEM_UNINIT 0x09
#define NV_OPER_FAILED 0x0A
#define INVALID_MEM_SIZE 0x0B
#define NV_BAD_ITEM_LEN 0x0C