trying to update the advertisement scanning at runtime it is working fine but when i try to update multiple time it is updating only few times not consistently updated . Can anyone please help me to solve this issue. Below is the code return in serial manager.c file. sending command as #ccdas_123 from iot tool box. This value i am storing in hardware parameters and when i reset updated value is stores in advertisement structure. But hardware structure is not updating sometimes.
serial_t *pSer = &mSerials[0];
uint16_t idx;
idx = pSer->txCurrent;
(void)NV_ReadHWParameters(&gHardwareParameters);//venk
//initially default value loaded if eeprom write new updated else condition
if (!gHardwareParameters.devidset)//default nonzero
advScanStruct[2].aData = (uint8_t*) "cdas-123";//default
else{
advScanStruct[2].aData=gHardwareParameters.device_id;}
//idx points to current txQueue buffer
if(idx==0)
idx=5;
else
idx = pSer->txCurrent;
//current buffer loaded to temp value
temp_id=pSer->txQueue[idx-1].pData;//venk
temp_id2=temp_id+9;
temp_id3=temp_id+9;
if(((*temp_id2==' ')&&(*++temp_id2=='#'))||((*temp_id3=='#')&&(*++temp_id3=='c')))
{
gHardwareParameters.temp_id1=temp_id2;
if(*gHardwareParameters.temp_id1=='c')
{
gHardwareParameters.temp_id1=gHardwareParameters.temp_id1+1;
}
else
{
gHardwareParameters.temp_id1=gHardwareParameters.temp_id1+2;
}
gHardwareParameters.device_id=(uint8_t*) (gHardwareParameters.temp_id1);//venk
advScanStruct[2].aData=gHardwareParameters.device_id;
gHardwareParameters.devidset =1;
(void)NV_WriteHWParameters(&gHardwareParameters);//venk
}