adl_flhWrite fails for specific ID's

Hi All,

I have a Q2501B (firmware 6.50a) which has been running for some time now. When I tried to modify some settings of the device (which are stored in flash) I noticed that the adl_flhWrite command failed with error -22 (ADL_FLH_RET_ERR_NO_ENOUGH_IDS). I have allocated 200 objects with adl_flhSubscribe. Some objects now give error -22 when I try to write to them, e.g. #2, #4. Other ID’s still work like #3.

In the FAQ on the main site I found this:

So I guess the garbage collector could be the problem, but they don’t mention how it should be fixed.

Has anyone had a similar problem and knows the solution?


Yes, that would seem like a logical conclusion!

Unfortunately, you get that with Wavecom documentation. :angry:

I think you’ll need to contact your Distributor, and get them to get a response direct from Wavecom?

I checked the “bad” id’s with adl_flhExist and the function returns 0 (object does not exist) for those.

Is it possible to delete specific id’s in the range created with adl_flhSubscribe? (If not, I guess I discovered some way to do it :p).

I don’t think it’s possible to “recreate” those id’s.

I’ve faced this issue too.
In my case the problem was the size of the object I was willing to write: If it is greater than 30KB, adl_flhWrite will return the code -22 (ADL_FLH_RET_ERR_NO_ENOUGH_IDS).
The limit is clearly stated in the documentation of the function. What it is not clear to me is the meaning of the result code, I would expect an ADL_FLH_RET_ERR_MEM_FULL instead (or even a new one, more specific).