UAVO structure is complicated. You might start by looking in file flight/uavtalk/uavtalk.c at function sendSingleObject(...) to see the wrapper that Revo/Oplink puts around a UAVO to send it out. Each different UAVO ID is generated at compile time. It is just some kind of check sum (md5sum?) of the UAVO definition file (an xml file). You will not find these IDs defined in any file until after you build things, and then they will be in header files in the build directory.
Be aware that UAVOs do not include timestamps. For logging / timing / scope purposes, they are currently added by GCS when GCS receives a UAVO. I think that it would be better for the Revo to add the timestamp, but it is not currently implemented that way (from what I recall of 16.09). Requiring the receiving code to add timestamps make it less accurate (think transmit retries or clogged data links) and makes adding a simple external logger complicated because it needs to understand UAVO format (to add the timestamps) instead of just storing the data.