If a pkdmsg type is not 0x0002, then just move forward 2-bytes until there is
valid pkdmsg type. This will allow better re-sync with a badly corrupted packet. I waffled about whether it should try to read the variable header fields if the DateTime field of the fixed header is invalid. Currently, it does. The pkdmsg header does not have very good identifying marks to re-sync with, so it's still possible that a valid msg that follows a corrupted one could get skipped. I would need some good set of varying examples of corrupted packets to test with, but I'm sure it's possible to "do better".