The standard BLE UUID for device name is 0x2A00. The read and write callbacks and the Set/Get functions are all contained within the stack. Application code may interact with this characteristic using GGS_GetParameter and GGS_SetParameter.
The problem is that GGS_GetParameter( GGS_DEVICE_NAME_ATT, pValue ); may return more than reading UUID 0x2A00.
To recreate the problem, set GGS_DEVICE_NAME_ATT to 'a' 'b' 'c' 'd' '\0'.
Write ''x' 'y' '\0' to UUID 0x2A00.
GGS_GetParameter( GGS_DEVICE_NAME_ATT, pValue ) will now set pValue to ''x' 'y' '\0' 'd' '\0'.
Reading UUID 0x2A00 only returns ''x' 'y' '\0'
The root of this problem is that iOS cannot write to 0x2A00. Android can. I need this functionality so i made a dummy UUID that simply transmits whatever GGS_GetParameter(GGS_DEVICE_NAME_ATT, pValue ) returns.
Proposed solution: Set the device name characteristic to all zero (or '\0') whenever a write command is issued