Skip to content
Snippets Groups Projects
info.py 1.08 KiB
import io

from edosl0util import stream
from edosl0util.cli import util


def main():
    parser = util.default_parser()
    parser.add_argument('-a', '--aqua', action='store_true')
    parser.add_argument('filepath')
    args = parser.parse_args()
    util.configure_logging(args)

    num_packets = 0
    if not args.aqua:
        packets = stream.jpss_packet_stream(io.open(args.filepath, 'rb'))
    else:
        packets = stream.aqua_packet_stream(io.open(args.filepath, 'rb'))
    while True:
        try:
            packets.next()
            num_packets += 1
        except stream.PacketTooShort as err:
            print("corrupt packet stream after %d packets: %s" % (num_packets, err))
            break
        except StopIteration:
            break
    total = 0
    first, last, info = packets.info()
    print("First: %s" % first)
    print("Last: %s" % last)
    for apid, dat in info.items():
        total += dat['count']
        print("%d: count=%d missing=%d" % (apid, dat['count'], dat['num_missing']))
    print("{} total packets".format(total))


if __name__ == '__main__':
    main()