Quality diagnostics problems

I need to analyze a quality of timestamps I get from dw1000. For this I use a void dwt_readdiagnostics(dwt_rxdiag_t *diagnostics) func from standart Decawave libs to get input variables. Then I prepare the variables to calc logarithms from 4.7 of User Manual(standart adjustment if needed, choosing constant value, checking before send it to logarithm)
I have some questions about that procedures.

  1. Sometimes I need to subtract the standard adjustment from the input variable rxPreamCount. But the value of adjusment(-5 in my case) can be greater or equal than the value of rxPreamCount variable from IC? Then there will be an overflow in a variable or zero value to logarithm. Is that possible? If it is possible what should I do in this case?
  2. Sometimes I have a negative difference between RX_Power and FP_Power. Is that a correct situation. And if it’s correct what does this mean about quality of such kind of blinks? Is that a LOS or NLOS or MULTIPATH or something different?
  3. Sometimes I have zeroes from IC in CWR_PWR field. I saw an unanswered topics about that problem. When i have it the other fields of structure dwt_rxdiag_t are OK. What should I do in this case?