From 2a575bf9b5a4942f60e979161764b9e942699e1e Mon Sep 17 00:00:00 2001 From: Lars Amsel Date: Fri, 4 Jun 2021 08:27:50 +0200 Subject: uhd: Add support for the USRP X410 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lars Amsel Co-authored-by: Michael Auchter Co-authored-by: Martin Braun Co-authored-by: Paul Butler Co-authored-by: Cristina Fuentes Co-authored-by: Humberto Jimenez Co-authored-by: Virendra Kakade Co-authored-by: Lane Kolbly Co-authored-by: Max Köhler Co-authored-by: Andrew Lynch Co-authored-by: Grant Meyerhoff Co-authored-by: Ciro Nishiguchi Co-authored-by: Thomas Vogel --- tools/json_to_zbx_dsa_cal.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 tools/json_to_zbx_dsa_cal.py (limited to 'tools') diff --git a/tools/json_to_zbx_dsa_cal.py b/tools/json_to_zbx_dsa_cal.py new file mode 100755 index 000000000..cc9bf265d --- /dev/null +++ b/tools/json_to_zbx_dsa_cal.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# +# Copyright 2020 Ettus Research, a National Instruments Brand +# +# SPDX-License-Identifier: GPL-3.0-or-later +# + +import uhd +import json +import pathlib + +def convert(name): + print("Convert {} ... ".format(name), end='') + with open(name) as jsonfile: + data = json.load(jsonfile) + num_steps = len(data['freq_gain_dsa_map'][0]['gains'][0]['steps']) + metadata = data['metadata'] + if num_steps == 2: + cal = uhd.usrp.cal.ZbxTxDsaCal(metadata['name'], metadata.get('serial', ''), metadata['timestamp']) + elif num_steps == 3: + cal = uhd.usrp.cal.ZbxRxDsaCal(metadata['name'], metadata.get('serial', ''), metadata['timestamp']) + else: + raise ValueError("Invalid number of steps {}".format(num_steps)) + for band in data["freq_gain_dsa_map"]: + print(band['name'], end=',') + gain_indizes = [i['steps'] for i in band['gains']] + print(len(gain_indizes), end=' ') + cal.add_frequency_band(band['max_freq'], band['name'], gain_indizes) + + rc_file = pathlib.Path(name).stem + ".cal" + with open(rc_file, "wb") as f: + f.write(cal.serialize()) + print('Done') + + +if __name__ == "__main__": + for filename in pathlib.Path.cwd().glob('*.json'): + convert(filename) -- cgit v1.2.3