Ticket #22 (closed feature: implemented) | |||||||||||||||||||||
BlackBoard Logging
Description
Implement BlackBoard Logging (copied from #11):
All data written must of course carry precise times, especially precise time offsets to the data written before so that the data is restored at the right time when it really was written to the BB (of course this cannot be guaranteed as readers may have aquired the lock at the exact time when the log data has to be restored, but we should be as close as possible with writer preference in the read/write lock).
The written data has to be versioned (and thus the interfaces have to be versioned). If the interface is changed later on the old log must still be usable by the log player. To reduce the amount of code interfaces have to be designed carefully such that these changes are not needed later on. An alternative might be to have one log-converter that converts log from any format to the current format (better option, faster during runtime).
The data is written byte-efficient, not textual representation is written. This is done for several reasons:
One of the major shortcomings here is the dependency of the endianess of the underlying system. A file created on a big-endian system will most likely not be readable on a little-endian system. Since we only use machines of the same endianess (robots and developer machines are all little endian PCs) this does not matter to us at the moment. There should be a least a flag in the log header denoting the endianess. If the times shows that this is needed a converter can easily be written then. Change History
Note: See
TracTickets for help on using
tickets.
| This list contains all users that will be notified about changes made to this ticket. These roles will be notified: Reporter, Subscriber, Participant
| ||||||||||||||||||||

