import argparse import logging from app import mqtt_mock, mqtt_sender, mqtt_subscriber, wits_sender def configure_logging(level_name): level = getattr(logging, str(level_name).upper(), logging.INFO) logging.basicConfig( level=level, format="%(asctime)s %(levelname)s %(name)s - %(message)s", ) def build_parser(): parser = argparse.ArgumentParser(description="tdEngine mqtt/wits mock application") parser.add_argument("--log-level", default="INFO", help="Logging level") subparsers = parser.add_subparsers(dest="command", required=True) mqtt_mock_parser = subparsers.add_parser("mqtt-mock", help="Run MQTT mock service") mqtt_mock.add_arguments(mqtt_mock_parser) mqtt_sender_parser = subparsers.add_parser("mqtt-sender", help="Run MQTT sender") mqtt_sender.add_arguments(mqtt_sender_parser) mqtt_subscriber_parser = subparsers.add_parser("mqtt-subscriber", help="Run MQTT subscriber") mqtt_subscriber.add_arguments(mqtt_subscriber_parser) wits_sender_parser = subparsers.add_parser("wits-sender", help="Run WITS sender") wits_sender.add_arguments(wits_sender_parser) return parser def main(argv=None): parser = build_parser() args = parser.parse_args(argv) configure_logging(args.log_level) logging.getLogger(__name__).info("start app command=%s", args.command) if args.command == "mqtt-mock": deps = mqtt_mock.build_mock_dependencies(args.config, data_file_override=args.data_file) mqtt_mock.run_mock_service(args, deps) elif args.command == "mqtt-sender": deps = mqtt_sender.build_sender_dependencies(args.config) mqtt_sender.run_sender(args, deps) elif args.command == "mqtt-subscriber": deps = mqtt_subscriber.build_subscriber_dependencies(args.config) mqtt_subscriber.run_subscriber(args, deps) elif args.command == "wits-sender": deps = wits_sender.build_wits_sender_dependencies(args.config) wits_sender.run_wits_sender(args, deps) if __name__ == "__main__": main()