mirror of
https://git.sdf.org/tamservo/robottas.git
synced 2025-11-14 18:13:47 -05:00
Removed DeVries. Added process monitoring to collection process so it will restart if it dies. Seems to be a 2h limit on API, so reporting has been failing at the end of long races.
This commit is contained in:
121
robottas_collector.py
Normal file → Executable file
121
robottas_collector.py
Normal file → Executable file
@@ -1,60 +1,61 @@
|
||||
import argparse
|
||||
import sys
|
||||
from RobottasSignalr import SignalRClient, messages_from_raw
|
||||
|
||||
|
||||
def save(args):
|
||||
mode = 'a' if args.append else 'w'
|
||||
client = SignalRClient(args.file, filemode=mode, debug=args.debug,
|
||||
timeout=args.timeout)
|
||||
client.start()
|
||||
|
||||
|
||||
def convert(args):
|
||||
with open(args.input, 'r') as infile:
|
||||
messages = infile.readlines()
|
||||
data, ec = messages_from_raw(messages)
|
||||
with open(args.output, 'w') as outfile:
|
||||
for elem in data:
|
||||
outfile.write(str(elem)+'\n')
|
||||
print(f"Completed with {ec} error(s)")
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="python -m fastf1.livetiming",
|
||||
description="Save live timing data during a session",
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter
|
||||
)
|
||||
|
||||
subparsers = parser.add_subparsers()
|
||||
|
||||
rec_parser = subparsers.add_parser(
|
||||
'save', help='Save live timing data'
|
||||
)
|
||||
conv_parser = subparsers.add_parser(
|
||||
'extract', help='Extract messages from saved debug-mode data'
|
||||
)
|
||||
|
||||
rec_parser.add_argument('file', type=str, help='Output file name')
|
||||
rec_parser.add_argument('--append', action='store_true', default=False,
|
||||
help="Append to output file. By default the file is "
|
||||
"overwritten if it exists already.")
|
||||
rec_parser.add_argument('--debug', action='store_true', default=False,
|
||||
help='Enable debug mode: save full SignalR message, '
|
||||
'not just the data.')
|
||||
rec_parser.add_argument('--timeout', type=int, default=60,
|
||||
help='Timeout in seconds after which the client will '
|
||||
'automatically exit if no data is received.')
|
||||
rec_parser.set_defaults(func=save)
|
||||
|
||||
conv_parser.add_argument("input", type=str, help='Input file name')
|
||||
conv_parser.add_argument("output", type=str, help='Output file name')
|
||||
conv_parser.set_defaults(func=convert)
|
||||
|
||||
if not len(sys.argv) > 1:
|
||||
# user did not provide any arguments
|
||||
parser.print_help()
|
||||
parser.exit(1)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.func(args) # call function associated with subparser
|
||||
#!/usr/bin/python3
|
||||
import argparse
|
||||
import sys
|
||||
from RobottasSignalr import SignalRClient, messages_from_raw
|
||||
|
||||
|
||||
def save(args):
|
||||
mode = 'a' if args.append else 'w'
|
||||
client = SignalRClient(args.file, filemode=mode, debug=args.debug,
|
||||
timeout=args.timeout)
|
||||
client.start()
|
||||
|
||||
|
||||
def convert(args):
|
||||
with open(args.input, 'r') as infile:
|
||||
messages = infile.readlines()
|
||||
data, ec = messages_from_raw(messages)
|
||||
with open(args.output, 'w') as outfile:
|
||||
for elem in data:
|
||||
outfile.write(str(elem)+'\n')
|
||||
print(f"Completed with {ec} error(s)")
|
||||
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
prog="python -m fastf1.livetiming",
|
||||
description="Save live timing data during a session",
|
||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter
|
||||
)
|
||||
|
||||
subparsers = parser.add_subparsers()
|
||||
|
||||
rec_parser = subparsers.add_parser(
|
||||
'save', help='Save live timing data'
|
||||
)
|
||||
conv_parser = subparsers.add_parser(
|
||||
'extract', help='Extract messages from saved debug-mode data'
|
||||
)
|
||||
|
||||
rec_parser.add_argument('file', type=str, help='Output file name')
|
||||
rec_parser.add_argument('--append', action='store_true', default=False,
|
||||
help="Append to output file. By default the file is "
|
||||
"overwritten if it exists already.")
|
||||
rec_parser.add_argument('--debug', action='store_true', default=False,
|
||||
help='Enable debug mode: save full SignalR message, '
|
||||
'not just the data.')
|
||||
rec_parser.add_argument('--timeout', type=int, default=60,
|
||||
help='Timeout in seconds after which the client will '
|
||||
'automatically exit if no data is received.')
|
||||
rec_parser.set_defaults(func=save)
|
||||
|
||||
conv_parser.add_argument("input", type=str, help='Input file name')
|
||||
conv_parser.add_argument("output", type=str, help='Output file name')
|
||||
conv_parser.set_defaults(func=convert)
|
||||
|
||||
if not len(sys.argv) > 1:
|
||||
# user did not provide any arguments
|
||||
parser.print_help()
|
||||
parser.exit(1)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.func(args) # call function associated with subparser
|
||||
|
||||
Reference in New Issue
Block a user