When using the GetDeviceDataSize API call, the returned value
does not take into account the fact that all RF error tokens will be
replaced by artificially created "true" data packets by the
GetDeviceData API. The tokens are small (2 bytes) and the packets
that replace them can be as long as 15 bytes, so it is possible that if
the Data Recorder contains a large amount of data that has a high
number of RF errors, the data returned by the GetDeviceData call
will exceed the memory allocation "suggestion" returned by the
GetDeviceDataSize call.
To workaround this problem, we suggest that the calling application
*double* the memory allocation that is returned by the
GetDeviceDataSize call. Since the entire EEPROM is 128K, this
can result in a RAM allocation of no more than 256K.
The recommendation to double the RAM allocation is probably very
conservative, but isn't it better to be safe than sorry?
A note will be put in the API document regarding this issue for the
next release.
Logged In: YES
user_id=1062933
This was fixed in version 35.