msg += self.hdr.encode()  #  MO DirectIP Header
        msg += self.location.encode()  # MO DirectIP Location
        msg += self.payload.encode()  # MO DirectIP GPS Payload
        msg[1:3] = (len(msg) - 3).to_bytes(2, "big")  # Fill in the length
        self.logger.debug("n=%s msg=%s", len(msg), bytes(msg))
        return bytes(msg)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description="Drifter calculation from GPS fixes")
    parser.add_argument("--dt",
                        type=int,
                        default=15 * 60,
                        metavar="seconds",
                        help="Time between packets")
    FauxDrifter.addArgs(parser)
    Forwarder.addArgs(parser)
    MyLogger.addArgs(parser)
    args = parser.parse_args()
    logger = MyLogger.mkLogger(args)
    faux = FauxDrifter(args, logger)

    forwarder = Forwarder(args, logger)
    forwarder.start()

    while True:
        msg = faux.mkMessage()
        forwarder.put(msg)
        time.sleep(args.dt)
Example #2
0
    type=float,
    default=60,
    help='How long to wait until the first scheduler run in seconds')

grp = parser.add_argument_group('Database related options')
grp.add_argument('--db', type=str, required=True, help='database name')
grp.add_argument('--group',
                 type=str,
                 default='SCHED',
                 help='Parameter group name to use')
grp.add_argument('--channel',
                 type=str,
                 default='run_scheduler',
                 help='DB channel to listen for notifications on')

MyLogger.addArgs(parser)  # Add logger related options

args = parser.parse_args()

logger = MyLogger.mkLogger(args,
                           __name__,
                           fmt='%(asctime)s: %(levelname)s - %(message)s')
logger.info('Args=%s', args)

if not args.single:  # Check single only options are not specified
    if args.minCleanTime is not None:
        parser.error(
            'You can only specifiy --minCleanTime with the --single option!')
    if args.sDate is not None:
        parser.error('You can only specifiy --sDate with the --single option!')