mirror of https://github.com/ArduPilot/ardupilot
Tools: added convert_param_scale.py
This commit is contained in:
parent
7de56d434c
commit
bf60a3b385
|
@ -0,0 +1,55 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
'''
|
||||||
|
tool to convert parameter names and scales, useful for conversion for cm -> m and cdeg -> deg
|
||||||
|
|
||||||
|
this looks for files called *.param or *.parm
|
||||||
|
|
||||||
|
example:
|
||||||
|
Tools/scripts/convert_param_scale.py --scale 0.1 TRIM_ARSPD_CM AIRSPEED_CRUISE
|
||||||
|
'''
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
|
parser = ArgumentParser(description="parameter conversion tool")
|
||||||
|
|
||||||
|
parser.add_argument("--scale", default=1.0, type=float, help="scale factor")
|
||||||
|
parser.add_argument("--directory", default=".", help="directory to search")
|
||||||
|
parser.add_argument("old_name", default=None, help="old parameter name")
|
||||||
|
parser.add_argument("new_name", default=None, help="new parameter name")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
def process_file(fname):
|
||||||
|
needs_write = False
|
||||||
|
with open(fname, "r") as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
for i in range(len(lines)):
|
||||||
|
line = lines[i]
|
||||||
|
if line.startswith(args.old_name):
|
||||||
|
a = line.split()
|
||||||
|
if len(a) == 2:
|
||||||
|
sep = ' '
|
||||||
|
else:
|
||||||
|
a = line.split(',')
|
||||||
|
if len(a) == 2:
|
||||||
|
sep = ','
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
v = float(a[1])
|
||||||
|
v *= args.scale
|
||||||
|
lines[i] = "%s%s%.2f\n" % (args.new_name, sep, v)
|
||||||
|
needs_write = True
|
||||||
|
if not needs_write:
|
||||||
|
return
|
||||||
|
print("Updating %s" % fname)
|
||||||
|
with open(fname, "w") as f:
|
||||||
|
for line in lines:
|
||||||
|
f.write(line)
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(args.directory):
|
||||||
|
for file in files:
|
||||||
|
if file.endswith(".parm") or file.endswith(".param"):
|
||||||
|
process_file(os.path.join(root, file))
|
Loading…
Reference in New Issue