Coming from a distributed systems background (not embedded or sensor networks) I have to ask about time and ordering of events.
I've asked this question before and no one has answered.
If a sensor sends a message M, is it guaranteed to be delivered (NO, right?) if the sensor then sends a second message M' that is delivered, can M still be delivered? If so then it is out of order, right? And the RXTimestamp is no use to you for ordering events.
So how do you order messages? Many profiles have event counters, but they all roll over…OK…so how long can a message be delayed? Is this a fully async network with arbitrary delay? If M or M' is delivered, can they be delivered again? i.e. can we have duplicates?
If a message can be lost, suffer arbitrary delay, and may be redelivered arbitrarily many times…what use is a 1 byte event counter for ordering events? What strategy do receiver developers tend to adopt for the ordering of messages and de-duplicating? Hope for the best?
Many thanks
Russell