aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/include/uhdlib/usrp/common/rpc.py
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/include/uhdlib/usrp/common/rpc.py')
-rw-r--r--host/lib/include/uhdlib/usrp/common/rpc.py51
1 files changed, 45 insertions, 6 deletions
diff --git a/host/lib/include/uhdlib/usrp/common/rpc.py b/host/lib/include/uhdlib/usrp/common/rpc.py
index 04a43ebce..4ca30b07d 100644
--- a/host/lib/include/uhdlib/usrp/common/rpc.py
+++ b/host/lib/include/uhdlib/usrp/common/rpc.py
@@ -9,7 +9,7 @@ import sys
from mako.template import Template
class Function:
- def __init__(self, return_type, function_name, args):
+ def __init__(self, return_type, function_name, args, no_claim=False):
self.name = function_name
self.does_return = return_type != "void"
self.return_type = return_type
@@ -17,6 +17,7 @@ class Function:
self.rpcname = f"\"{function_name}\""
self.args = [" ".join(arg) for arg in args]
self.has_rpcprefix = False
+ self.no_claim = no_claim
def enable_rpcprefix(self):
self.rpcname = f"_rpc_prefix + \"{self.name}\""
@@ -31,7 +32,7 @@ class Interface:
for fn in self.functions:
fn.enable_rpcprefix()
-def fn_from_string(function_string):
+def fn_from_string(function_string, no_claim=False):
m = re.match(r"^([a-zA-Z:<>,_0-9 ]+)\s+([a-zA-Z0-9_]+)\(([a-zA-Z0-9,_:&<> ]*)\)$", function_string)
return_type = m.group(1)
function_name = m.group(2)
@@ -39,7 +40,7 @@ def fn_from_string(function_string):
args = [arg.strip() for arg in args.split(",")]
args = [arg.split(" ") for arg in args if len(arg) > 0]
args = [(" ".join(arg[:-1]), arg[-1]) for arg in args]
- return Function(return_type, function_name, args)
+ return Function(return_type, function_name, args, no_claim)
IFACES = [
Interface("mpmd_rpc", [
@@ -66,7 +67,36 @@ IFACES = [
fn_from_string("std::map<std::string, std::string> get_mb_eeprom()"),
fn_from_string("std::vector<std::string> get_gpio_src(const std::string& bank)"),
fn_from_string("void set_gpio_src(const std::string& bank, const std::vector<std::string>& src)"),
+
+ # ref_clk_calibration
+ fn_from_string("void set_ref_clk_tuning_word(uint32_t tuning_word)"),
+ fn_from_string("uint32_t get_ref_clk_tuning_word()"),
+ fn_from_string("void store_ref_clk_tuning_word(uint32_t tuning_word)"),
+ ]),
+ Interface("x400_rpc", [
+ fn_from_string("std::vector<std::map<std::string, std::string>> get_dboard_info()", no_claim=True),
+ fn_from_string("void set_cal_frozen(bool state, size_t block_count, size_t chan)"),
+ fn_from_string("std::vector<int> get_cal_frozen(size_t block_count, size_t chan)"),
+ fn_from_string("double rfdc_set_nco_freq(const std::string& trx, size_t block_count, size_t chan, double freq)"),
+ fn_from_string("double rfdc_get_nco_freq(const std::string& trx, size_t block_count, size_t chan)"),
+ fn_from_string("double get_master_clock_rate()"),
+ fn_from_string("std::map<std::string, std::vector<uint8_t>> get_db_eeprom(size_t db_idx)"),
+ fn_from_string("bool get_threshold_status(size_t db_number, size_t chan, size_t threshold_block)"),
+ fn_from_string("void set_dac_mux_enable(size_t motherboard_channel_number, int enable)"),
+ fn_from_string("void set_dac_mux_data(size_t i, size_t q)"),
+ fn_from_string("double get_spll_freq()"),
+ fn_from_string("void setup_threshold(size_t db_number, size_t chan, size_t threshold_block, const std::string& mode, size_t delay, size_t under, size_t over)"),
+ fn_from_string("bool is_db_gpio_ifc_present(size_t db_idx)"),
]),
+ Interface("dboard_base_rpc", [
+ fn_from_string("std::vector<std::string> get_sensors(const std::string& trx)"),
+ fn_from_string("sensor_value_t::sensor_map_t get_sensor(const std::string& trx, const std::string& sensor, size_t chan)"),
+ ], has_rpcprefix=True),
+ Interface("zbx_rpc", [
+ fn_from_string("double get_dboard_prc_rate()"),
+ fn_from_string("double get_dboard_sample_rate()"),
+ fn_from_string("void enable_iq_swap(bool is_band_inverted, const std::string& trx, size_t chan)"),
+ ], has_rpcprefix=True),
]
COMMON_TMPL = """<% import time %>\
@@ -117,11 +147,20 @@ namespace uhd { namespace usrp {
%for function in iface.functions:
${function.return_type} ${function.name}(${",".join(function.args)}) override
{
- %if function.does_return:
- return _rpcc->request_with_token<${function.return_type}>(${",".join([function.rpcname] + function.arg_names)});
+ %if function.no_claim:
+ %if function.does_return:
+ return _rpcc->request<${function.return_type}>
+ %else:
+ _rpcc->notify
+ %endif
%else:
- _rpcc->notify_with_token(${",".join([function.rpcname] + function.arg_names)});
+ %if function.does_return:
+ return _rpcc->request_with_token<${function.return_type}>
+ %else:
+ _rpcc->notify_with_token
+ %endif
%endif
+ (${",".join([function.rpcname] + function.arg_names)});
}
%endfor