mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-08 16:41:55 +00:00
sweetberry: converter tool for servo_ina
convert_servo_ina.py can convert power log config files from hdctools/servo/data into sweetberry configs BRANCH=None BUG=b:35578707 TEST=compare kevin_r0_loc.py output with kevin.board Change-Id: Iadc57fe4eb1f5b220c6bffe3a3fe8a10b0d6b5a2 Signed-off-by: Nick Sanders <nsanders@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/634486
This commit is contained in:
@@ -8,6 +8,18 @@ a ".board" file, and one describing the particular rails you want to
|
||||
monitor in this session, a ".scenario" file.
|
||||
|
||||
|
||||
Converting from servo_ina configs:
|
||||
|
||||
Many configs can be found for the servo_ina_board in hdctools/servo/data/.
|
||||
Sweetberry is plug compatible with servo_ina headers, and config files
|
||||
can be converted with the following tool:
|
||||
|
||||
./convert_servo_ina.py kevin_r0_loc.py
|
||||
|
||||
This will produce kevin_r0_loc.board and kevin_r0_loc.scenario which
|
||||
can be used with powerlog.py.
|
||||
|
||||
|
||||
Board files:
|
||||
|
||||
Board files contain a list of rails, supporting 48 channels each on up to two
|
||||
|
||||
74
extra/usb_power/convert_servo_ina.py
Executable file
74
extra/usb_power/convert_servo_ina.py
Executable file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/python
|
||||
# Copyright 2017 The Chromium OS Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
"""Program to convert power logging config from a servo_ina device
|
||||
to a sweetberry config.
|
||||
"""
|
||||
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def fetch_records(basename):
|
||||
"""Import records from servo_ina file.
|
||||
|
||||
servo_ina files are python imports, and have a list of tuples with
|
||||
the INA data.
|
||||
(inatype, i2caddr, rail name, bus voltage, shunt ohms, mux, True)
|
||||
|
||||
Args:
|
||||
basename: python import name (filename -.py)
|
||||
|
||||
Returns:
|
||||
list of tuples as described above.
|
||||
"""
|
||||
ina_desc = __import__(basename)
|
||||
return ina_desc.inas
|
||||
|
||||
|
||||
def main(argv):
|
||||
if len(argv) != 2:
|
||||
print "usage:"
|
||||
print " %s input.py" % argv[0]
|
||||
return
|
||||
|
||||
inputf = argv[1]
|
||||
basename = os.path.splitext(inputf)[0]
|
||||
outputf = basename + '.board'
|
||||
outputs = basename + '.scenario'
|
||||
|
||||
print "Converting %s to %s, %s" % (inputf, outputf, outputs)
|
||||
|
||||
inas = fetch_records(basename)
|
||||
|
||||
|
||||
boardfile = open(outputf, 'w')
|
||||
scenario = open(outputs, 'w')
|
||||
|
||||
boardfile.write('[\n')
|
||||
scenario.write('[\n')
|
||||
start = True
|
||||
|
||||
for rec in inas:
|
||||
if start:
|
||||
start = False
|
||||
else:
|
||||
boardfile.write(',\n')
|
||||
scenario.write(',\n')
|
||||
|
||||
record = ' {"name": "%s", "rs": %f, "sweetberry": "A", "channel": %d}' % (
|
||||
rec[2], rec[4], rec[1] - 64)
|
||||
boardfile.write(record)
|
||||
scenario.write('"%s"' % rec[2])
|
||||
|
||||
boardfile.write('\n')
|
||||
boardfile.write(']')
|
||||
|
||||
scenario.write('\n')
|
||||
scenario.write(']')
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(sys.argv)
|
||||
Reference in New Issue
Block a user