(args, instrument, instrument_args=(), instrument_kwargs=None)
| 154 | |
| 155 | |
| 156 | def main_generic(args, instrument, instrument_args=(), instrument_kwargs=None): |
| 157 | import argparse |
| 158 | parser = argparse.ArgumentParser() |
| 159 | |
| 160 | parser.add_argument('connection', choices=['serial', 'tcp']) |
| 161 | args, pending = parser.parse_known_args(args) |
| 162 | |
| 163 | if args.connection == 'serial': |
| 164 | subparser = argparse.ArgumentParser() |
| 165 | subparser.add_argument('-p', '--port', type=str, default='1', |
| 166 | help='Serial port') |
| 167 | func = main_serial |
| 168 | |
| 169 | else: |
| 170 | subparser = argparse.ArgumentParser() |
| 171 | subparser.add_argument('-H', '--host', type=str, default='localhost', |
| 172 | help='TCP hostname') |
| 173 | subparser.add_argument('-p', '--port', type=int, default=5678, |
| 174 | help='TCP port') |
| 175 | func = main_tcp |
| 176 | |
| 177 | args2 = subparser.parse_args(pending) |
| 178 | |
| 179 | server = func(instrument(*instrument_args, **(instrument_kwargs or {})), args2) |
| 180 | |
| 181 | logging.info('interrupt the program with Ctrl-C') |
| 182 | try: |
| 183 | server.serve_forever() |
| 184 | except KeyboardInterrupt: |
| 185 | logging.info('Ending') |
| 186 | finally: |
| 187 | server.shutdown() |
no test coverage detected