| #!/usr/bin/env python2 |
| # Copyright 2017 The ChromiumOS Authors |
| # 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) |