Add a time value somewhere up top which is written into when the payload ID lists are downloaded successfully. Maybe need to add another return value to the download payload ID list functions? Also need to have a minimum time between download attempts (1 hour?)
At this point, check to see if the callsign is UNKNOWN_PAYLOAD_ID. If so:
if not args.nodownload and we have gone past the minimum time, attempt to re-download the payload ID list. Then, re-run decode_packet.
Notes: