RemoteRF 2.0.3__tar.gz → 2.0.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {remoterf-2.0.3/src/remoteRF.egg-info → remoterf-2.0.7}/PKG-INFO +62 -3
- {remoterf-2.0.3 → remoterf-2.0.7}/README.md +60 -1
- {remoterf-2.0.3 → remoterf-2.0.7}/setup.py +3 -3
- remoterf-2.0.7/src/remoteRF/common/grpc/grpc_pb2.py +101 -0
- remoterf-2.0.7/src/remoteRF/common/grpc/grpc_pb2_grpc.py +462 -0
- remoterf-2.0.7/src/remoteRF/common/grpc/v2_codec.py +130 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/utils/process_arg.py +103 -60
- remoterf-2.0.7/src/remoteRF/core/__init__.py +20 -0
- remoterf-2.0.7/src/remoteRF/core/dynamic_v2_transport.py +477 -0
- remoterf-2.0.7/src/remoteRF/core/v2_errors.py +100 -0
- remoterf-2.0.7/src/remoteRF/drivers/__init__.py +26 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/drivers/dynamic_device.py +101 -7
- remoterf-2.0.7/src/remoteRF/drivers/dynamic_v2.py +887 -0
- remoterf-2.0.7/src/remoteRF/drivers/support/uhd_dsp.py +76 -0
- remoterf-2.0.7/src/remoteRF/drivers/support/uhd_v2.py +741 -0
- remoterf-2.0.7/src/remoteRF/drivers/usrp/__init__.py +4 -0
- remoterf-2.0.7/src/remoteRF/drivers/usrp/usrp_remote.py +8 -0
- remoterf-2.0.7/src/remoteRF/drivers/usrp/usrp_remote.pyi +180 -0
- {remoterf-2.0.3 → remoterf-2.0.7/src/remoterf.egg-info}/PKG-INFO +62 -3
- remoterf-2.0.7/src/remoterf.egg-info/SOURCES.txt +51 -0
- {remoterf-2.0.3/src/remoteRF.egg-info → remoterf-2.0.7/src/remoterf.egg-info}/requires.txt +2 -2
- remoterf-2.0.7/src/remoterf.egg-info/top_level.txt +1 -0
- remoterf-2.0.7/tests/test_dynamic_v2.py +751 -0
- remoterf-2.0.7/tests/test_process_arg.py +218 -0
- remoterf-2.0.3/LICENSE +0 -21
- remoterf-2.0.3/src/remoteRF/common/grpc/grpc_pb2.py +0 -59
- remoterf-2.0.3/src/remoteRF/common/grpc/grpc_pb2_grpc.py +0 -97
- remoterf-2.0.3/src/remoteRF/core/__init__.py +0 -2
- remoterf-2.0.3/src/remoteRF/drivers/__init__.py +0 -1
- remoterf-2.0.3/src/remoteRF.egg-info/SOURCES.txt +0 -46
- remoterf-2.0.3/src/remoteRF.egg-info/top_level.txt +0 -1
- remoterf-2.0.3/tests/test_process_arg.py +0 -110
- {remoterf-2.0.3 → remoterf-2.0.7}/MANIFEST.in +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/setup.cfg +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/grpc/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/tos_notice.txt +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/utils/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/utils/ansi_codes.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/utils/api_token.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/common/utils/list_string.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/config/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/config/cert_fetcher.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/config/config.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/core/acc_login.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/core/app.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/core/banner_note.txt +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/core/grpc_acc.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/core/grpc_client.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/drivers/adalm_pluto/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/drivers/adalm_pluto/pluto_remote.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/drivers/support/__init__.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/drivers/support/uhd.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/remoterf_cli.py +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/src/remoteRF/version.py +0 -0
- {remoterf-2.0.3/src/remoteRF.egg-info → remoterf-2.0.7/src/remoterf.egg-info}/dependency_links.txt +0 -0
- {remoterf-2.0.3/src/remoteRF.egg-info → remoterf-2.0.7/src/remoterf.egg-info}/entry_points.txt +0 -0
- {remoterf-2.0.3 → remoterf-2.0.7}/tests/test_dynamic_device_codegen.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: remoterf
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.7
|
|
4
4
|
Summary: A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts.
|
|
5
5
|
Author: Ethan Ge
|
|
6
6
|
Author-email: ethoGalaxy@gmail.com
|
|
@@ -9,8 +9,8 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
9
9
|
Classifier: Operating System :: OS Independent
|
|
10
10
|
Requires-Python: >=3.10
|
|
11
11
|
Description-Content-Type: text/markdown
|
|
12
|
-
Requires-Dist: grpcio<2.0.0,>=1.
|
|
13
|
-
Requires-Dist: protobuf<
|
|
12
|
+
Requires-Dist: grpcio<2.0.0,>=1.78.1
|
|
13
|
+
Requires-Dist: protobuf<7.0.0,>=6.31.1
|
|
14
14
|
Requires-Dist: numpy
|
|
15
15
|
Requires-Dist: prompt_toolkit
|
|
16
16
|
Requires-Dist: python-dotenv
|
|
@@ -53,6 +53,65 @@ source venv/bin/activate # Activate virtual environment
|
|
|
53
53
|
pip install remoterf # Install remoteRF
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
## NI USRP-2901 / B200-family
|
|
57
|
+
|
|
58
|
+
After reserving a server-local or HostRF-owned `usrp` inventory entry, fetch or refresh its
|
|
59
|
+
Dynamic v2 package with the reservation token:
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
from remoteRF.drivers import ensure_driver
|
|
63
|
+
|
|
64
|
+
ensure_driver(token="reservation-token")
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Both supported initialization forms then use the same generated runtime:
|
|
68
|
+
|
|
69
|
+
```python
|
|
70
|
+
from remoteRF.drivers.usrp import uhd
|
|
71
|
+
|
|
72
|
+
with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
|
|
73
|
+
print(usrp.remoterf_capabilities)
|
|
74
|
+
usrp.set_rx_rate(1e6)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from remoteRF.drivers.usrp import MultiUSRP
|
|
79
|
+
|
|
80
|
+
usrp = MultiUSRP("reservation-token")
|
|
81
|
+
try:
|
|
82
|
+
print(usrp.get_pp_string())
|
|
83
|
+
finally:
|
|
84
|
+
usrp.close()
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Streaming uses NumPy buffers and native-like UHD value objects. Only the
|
|
88
|
+
leading region reported by native UHD is changed on a partial receive:
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
import numpy as np
|
|
92
|
+
from remoteRF.drivers.usrp import uhd
|
|
93
|
+
|
|
94
|
+
with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
|
|
95
|
+
stream_args = uhd.usrp.StreamArgs("fc32", "sc16")
|
|
96
|
+
stream_args.channels = [0]
|
|
97
|
+
with usrp.get_rx_stream(stream_args) as rx:
|
|
98
|
+
samples = np.empty(4096, dtype=np.complex64)
|
|
99
|
+
metadata = uhd.types.RXMetadata()
|
|
100
|
+
count = rx.recv(samples, metadata, 0.25)
|
|
101
|
+
valid_samples = samples[:count]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The generated package includes native-like namespaces, aliases, overload
|
|
105
|
+
stubs, deterministic `close()`, context managers, opaque session-bound
|
|
106
|
+
handles, and typed errors in `remoteRF.core.v2_errors`. Streamers are never
|
|
107
|
+
silently recreated after a disconnect; reopen a new device session and
|
|
108
|
+
configure a new stream explicitly.
|
|
109
|
+
|
|
110
|
+
Methods marked `deferred` in the fetched schema remain available through
|
|
111
|
+
generic native dispatch, but are not release-qualified as exact UHD overload
|
|
112
|
+
parity until the server's UHD 4.10 target-introspection and hardware
|
|
113
|
+
differential gates pass.
|
|
114
|
+
|
|
56
115
|
If `pip install` doesn't work, you can clone the [source](https://github.com/WirelessLabAtUCLA/RemoteRF-Client) directly from github.
|
|
57
116
|
|
|
58
117
|
<!-- 1. **Clone the repository:**
|
|
@@ -27,6 +27,65 @@ source venv/bin/activate # Activate virtual environment
|
|
|
27
27
|
pip install remoterf # Install remoteRF
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
## NI USRP-2901 / B200-family
|
|
31
|
+
|
|
32
|
+
After reserving a server-local or HostRF-owned `usrp` inventory entry, fetch or refresh its
|
|
33
|
+
Dynamic v2 package with the reservation token:
|
|
34
|
+
|
|
35
|
+
```python
|
|
36
|
+
from remoteRF.drivers import ensure_driver
|
|
37
|
+
|
|
38
|
+
ensure_driver(token="reservation-token")
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Both supported initialization forms then use the same generated runtime:
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
from remoteRF.drivers.usrp import uhd
|
|
45
|
+
|
|
46
|
+
with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
|
|
47
|
+
print(usrp.remoterf_capabilities)
|
|
48
|
+
usrp.set_rx_rate(1e6)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
from remoteRF.drivers.usrp import MultiUSRP
|
|
53
|
+
|
|
54
|
+
usrp = MultiUSRP("reservation-token")
|
|
55
|
+
try:
|
|
56
|
+
print(usrp.get_pp_string())
|
|
57
|
+
finally:
|
|
58
|
+
usrp.close()
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Streaming uses NumPy buffers and native-like UHD value objects. Only the
|
|
62
|
+
leading region reported by native UHD is changed on a partial receive:
|
|
63
|
+
|
|
64
|
+
```python
|
|
65
|
+
import numpy as np
|
|
66
|
+
from remoteRF.drivers.usrp import uhd
|
|
67
|
+
|
|
68
|
+
with uhd.usrp.MultiUSRP(token="reservation-token") as usrp:
|
|
69
|
+
stream_args = uhd.usrp.StreamArgs("fc32", "sc16")
|
|
70
|
+
stream_args.channels = [0]
|
|
71
|
+
with usrp.get_rx_stream(stream_args) as rx:
|
|
72
|
+
samples = np.empty(4096, dtype=np.complex64)
|
|
73
|
+
metadata = uhd.types.RXMetadata()
|
|
74
|
+
count = rx.recv(samples, metadata, 0.25)
|
|
75
|
+
valid_samples = samples[:count]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The generated package includes native-like namespaces, aliases, overload
|
|
79
|
+
stubs, deterministic `close()`, context managers, opaque session-bound
|
|
80
|
+
handles, and typed errors in `remoteRF.core.v2_errors`. Streamers are never
|
|
81
|
+
silently recreated after a disconnect; reopen a new device session and
|
|
82
|
+
configure a new stream explicitly.
|
|
83
|
+
|
|
84
|
+
Methods marked `deferred` in the fetched schema remain available through
|
|
85
|
+
generic native dispatch, but are not release-qualified as exact UHD overload
|
|
86
|
+
parity until the server's UHD 4.10 target-introspection and hardware
|
|
87
|
+
differential gates pass.
|
|
88
|
+
|
|
30
89
|
If `pip install` doesn't work, you can clone the [source](https://github.com/WirelessLabAtUCLA/RemoteRF-Client) directly from github.
|
|
31
90
|
|
|
32
91
|
<!-- 1. **Clone the repository:**
|
|
@@ -129,4 +188,4 @@ Nothing else needs changing!
|
|
|
129
188
|
|
|
130
189
|
This is fundamentally a experimental platform, and there will be many unknown bugs and issues. Some devices do not have universal support for all its functions at the moment, I am working on that aspect.
|
|
131
190
|
|
|
132
|
-
**So please submit feedback!** -->
|
|
191
|
+
**So please submit feedback!** -->
|
|
@@ -6,7 +6,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
|
6
6
|
|
|
7
7
|
setup(
|
|
8
8
|
name="remoterf",
|
|
9
|
-
version="2.0.
|
|
9
|
+
version="2.0.7",
|
|
10
10
|
author="Ethan Ge",
|
|
11
11
|
author_email="ethoGalaxy@gmail.com",
|
|
12
12
|
description="A python API to remotely access signal centric hardware. Client-side only! Courtesy of Wireless Lab @ UCLA & Prof. Ian Roberts.",
|
|
@@ -17,7 +17,7 @@ setup(
|
|
|
17
17
|
license_file='MIT',
|
|
18
18
|
include_package_data=True, # Includes files specified in MANIFEST.in
|
|
19
19
|
install_requires=[
|
|
20
|
-
"grpcio>=1.
|
|
20
|
+
"grpcio>=1.78.1,<2.0.0", "protobuf>=6.31.1,<7.0.0", "numpy", "prompt_toolkit", "python-dotenv", "prompt-toolkit"
|
|
21
21
|
],
|
|
22
22
|
classifiers=[
|
|
23
23
|
"Programming Language :: Python :: 3",
|
|
@@ -42,4 +42,4 @@ setup(
|
|
|
42
42
|
],
|
|
43
43
|
},
|
|
44
44
|
|
|
45
|
-
)
|
|
45
|
+
)
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: grpc.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'grpc.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\ngrpc.proto\x12\tremote_rf\"\xa2\x01\n\x11GenericRPCRequest\x12\x15\n\rfunction_name\x18\x01 \x01(\t\x12\x34\n\x04\x61rgs\x18\x02 \x03(\x0b\x32&.remote_rf.GenericRPCRequest.ArgsEntry\x1a@\n\tArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.remote_rf.Argument:\x02\x38\x01\"\x96\x01\n\x12GenericRPCResponse\x12;\n\x07results\x18\x01 \x03(\x0b\x32*.remote_rf.GenericRPCResponse.ResultsEntry\x1a\x43\n\x0cResultsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\"\n\x05value\x18\x02 \x01(\x0b\x32\x13.remote_rf.Argument:\x02\x38\x01\"\x19\n\nArrayShape\x12\x0b\n\x03\x64im\x18\x01 \x03(\x05\"+\n\rComplexNumber\x12\x0c\n\x04real\x18\x01 \x01(\x02\x12\x0c\n\x04imag\x18\x02 \x01(\x02\"a\n\x11\x43omplexNumpyArray\x12$\n\x05shape\x18\x01 \x01(\x0b\x32\x15.remote_rf.ArrayShape\x12&\n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x18.remote_rf.ComplexNumber\"D\n\x0eRealNumpyArray\x12$\n\x05shape\x18\x01 \x01(\x0b\x32\x15.remote_rf.ArrayShape\x12\x0c\n\x04\x64\x61ta\x18\x02 \x03(\x02\"\xb6\x02\n\x08\x41rgument\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x15\n\x0bint64_value\x18\x02 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x03 \x01(\x02H\x00\x12\x14\n\nbool_value\x18\x04 \x01(\x08H\x00\x12\x35\n\rcomplex_array\x18\x05 \x01(\x0b\x32\x1c.remote_rf.ComplexNumpyArrayH\x00\x12/\n\nreal_array\x18\x06 \x01(\x0b\x32\x19.remote_rf.RealNumpyArrayH\x00\x12\x14\n\njson_value\x18\x07 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x08 \x01(\x0cH\x00\x12\x30\n\rndarray_value\x18\t \x01(\x0b\x32\x17.remote_rf.NDArrayValueH\x00\x42\x07\n\x05value\":\n\x0cNDArrayValue\x12\r\n\x05\x64type\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x03\x12\x0c\n\x04\x64\x61ta\x18\x03 \x01(\x0c\"\xe9\x01\n\x0c\x44ynamicValue\x12\x14\n\nnull_value\x18\x01 \x01(\x08H\x00\x12\x14\n\nbool_value\x18\x02 \x01(\x08H\x00\x12\x15\n\x0bint64_value\x18\x03 \x01(\x12H\x00\x12\x16\n\x0c\x64ouble_value\x18\x04 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x05 \x01(\tH\x00\x12\x15\n\x0b\x62ytes_value\x18\x06 \x01(\x0cH\x00\x12\x14\n\njson_value\x18\x07 \x01(\tH\x00\x12\x30\n\rndarray_value\x18\x08 \x01(\x0b\x32\x17.remote_rf.NDArrayValueH\x00\x42\x07\n\x05value\"B\n\nNamedValue\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.remote_rf.DynamicValue\"B\n\x08Mutation\x12\x0e\n\x06target\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.remote_rf.DynamicValue\"\xb0\x01\n\rErrorEnvelope\x12\x0c\n\x04\x63ode\x18\x01 \x01(\t\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x14\n\x0c\x64\x65tails_json\x18\x03 \x01(\t\x12\x0e\n\x06method\x18\x04 \x01(\t\x12\x18\n\x10native_exception\x18\x05 \x01(\t\x12\x13\n\x0buhd_version\x18\x06 \x01(\t\x12\x11\n\tretryable\x18\x07 \x01(\x08\x12\x18\n\x10\x66\x61tal_to_session\x18\x08 \x01(\x08\"s\n\x10NegotiateRequest\x12\x17\n\x0fschema_versions\x18\x01 \x03(\t\x12!\n\x19\x63ontrol_protocol_versions\x18\x02 \x03(\t\x12#\n\x1bstreaming_protocol_versions\x18\x03 \x03(\t\"\x9a\x01\n\x11NegotiateResponse\x12\x16\n\x0eschema_version\x18\x01 \x01(\t\x12 \n\x18\x63ontrol_protocol_version\x18\x02 \x01(\t\x12\"\n\x1astreaming_protocol_version\x18\x03 \x01(\t\x12\'\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\":\n\x10GetSchemaRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x17\n\x0fschema_versions\x18\x02 \x03(\t\"~\n\x11GetSchemaResponse\x12\x16\n\x0eschema_version\x18\x01 \x01(\t\x12\x13\n\x0bschema_json\x18\x02 \x01(\t\x12\x13\n\x0bschema_hash\x18\x03 \x01(\t\x12\'\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\"\x88\x01\n\x12OpenSessionRequest\x12\r\n\x05token\x18\x01 \x01(\t\x12\x1d\n\x15requested_schema_hash\x18\x02 \x01(\t\x12 \n\x18\x63ontrol_protocol_version\x18\x03 \x01(\t\x12\"\n\x1astreaming_protocol_version\x18\x04 \x01(\t\"\xee\x01\n\x13OpenSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x15\n\rdevice_handle\x18\x02 \x01(\t\x12\x13\n\x0bschema_json\x18\x03 \x01(\t\x12\x13\n\x0bschema_hash\x18\x04 \x01(\t\x12\x19\n\x11\x63\x61pabilities_json\x18\x05 \x01(\t\x12\x13\n\x0buhd_version\x18\x06 \x01(\t\x12\x0f\n\x07uhd_abi\x18\x07 \x01(\t\x12\x18\n\x10hardware_profile\x18\x08 \x01(\t\x12\'\n\x05\x65rror\x18\t \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\"}\n\rInvokeRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x0e\n\x06method\x18\x03 \x01(\t\x12\x13\n\x0boverload_id\x18\x04 \x01(\t\x12#\n\x04\x61rgs\x18\x05 \x03(\x0b\x32\x15.remote_rf.NamedValue\"\x8a\x01\n\x0eInvokeResponse\x12\'\n\x06result\x18\x01 \x01(\x0b\x32\x17.remote_rf.DynamicValue\x12&\n\tmutations\x18\x02 \x03(\x0b\x32\x13.remote_rf.Mutation\x12\'\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\"8\n\x12\x43loseHandleRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0e\n\x06handle\x18\x02 \x01(\t\")\n\x13\x43loseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\"H\n\rCloseResponse\x12\x0e\n\x06\x63losed\x18\x01 \x01(\x08\x12\'\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\"\xea\x03\n\x0bSampleFrame\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0e\n\x06handle\x18\x02 \x01(\t\x12\x12\n\ngeneration\x18\x03 \x01(\x04\x12\x14\n\x0coperation_id\x18\x04 \x01(\t\x12\x10\n\x08sequence\x18\x05 \x01(\x04\x12-\n\tdirection\x18\x06 \x01(\x0e\x32\x1a.remote_rf.SampleDirection\x12(\n\x04kind\x18\x07 \x01(\x0e\x32\x1a.remote_rf.SampleFrameKind\x12\r\n\x05\x64type\x18\x08 \x01(\t\x12\r\n\x05shape\x18\t \x03(\x03\x12\x10\n\x08\x63hannels\x18\n \x03(\r\x12\x14\n\x0csample_count\x18\x0b \x01(\x04\x12\x0f\n\x07payload\x18\x0c \x01(\x0c\x12\x15\n\rmetadata_json\x18\r \x01(\t\x12\x18\n\x10\x64\x65vice_time_secs\x18\x0e \x01(\x01\x12\x0f\n\x07\x63redits\x18\x0f \x01(\r\x12\x13\n\x0btimeout_sec\x18\x10 \x01(\x01\x12\x12\n\none_packet\x18\x11 \x01(\x08\x12\x15\n\rend_of_stream\x18\x12 \x01(\x08\x12\x11\n\tcancelled\x18\x13 \x01(\x08\x12\'\n\x05\x65rror\x18\x14 \x01(\x0b\x32\x18.remote_rf.ErrorEnvelope\x12\r\n\x05\x66lags\x18\x15 \x01(\x04*e\n\x0fSampleDirection\x12 \n\x1cSAMPLE_DIRECTION_UNSPECIFIED\x10\x00\x12\x17\n\x13SAMPLE_DIRECTION_RX\x10\x01\x12\x17\n\x13SAMPLE_DIRECTION_TX\x10\x02*\xf2\x01\n\x0fSampleFrameKind\x12\x1c\n\x18SAMPLE_FRAME_UNSPECIFIED\x10\x00\x12\x15\n\x11SAMPLE_FRAME_OPEN\x10\x01\x12\x18\n\x14SAMPLE_FRAME_REQUEST\x10\x02\x12\x15\n\x11SAMPLE_FRAME_DATA\x10\x03\x12\x17\n\x13SAMPLE_FRAME_RESULT\x10\x04\x12\x17\n\x13SAMPLE_FRAME_CREDIT\x10\x05\x12\x17\n\x13SAMPLE_FRAME_CANCEL\x10\x06\x12\x16\n\x12SAMPLE_FRAME_CLOSE\x10\x07\x12\x16\n\x12SAMPLE_FRAME_ERROR\x10\x08\x32Q\n\nGenericRPC\x12\x43\n\x04\x43\x61ll\x12\x1c.remote_rf.GenericRPCRequest\x1a\x1d.remote_rf.GenericRPCResponse2\xc1\x03\n\x10\x44ynamicControlV2\x12\x46\n\tNegotiate\x12\x1b.remote_rf.NegotiateRequest\x1a\x1c.remote_rf.NegotiateResponse\x12\x46\n\tGetSchema\x12\x1b.remote_rf.GetSchemaRequest\x1a\x1c.remote_rf.GetSchemaResponse\x12L\n\x0bOpenSession\x12\x1d.remote_rf.OpenSessionRequest\x1a\x1e.remote_rf.OpenSessionResponse\x12=\n\x06Invoke\x12\x18.remote_rf.InvokeRequest\x1a\x19.remote_rf.InvokeResponse\x12\x46\n\x0b\x43loseHandle\x12\x1d.remote_rf.CloseHandleRequest\x1a\x18.remote_rf.CloseResponse\x12H\n\x0c\x43loseSession\x12\x1e.remote_rf.CloseSessionRequest\x1a\x18.remote_rf.CloseResponse2R\n\x0cSampleDataV1\x12\x42\n\x0cSampleStream\x12\x16.remote_rf.SampleFrame\x1a\x16.remote_rf.SampleFrame(\x01\x30\x01\x42\x1e\n\x10\x63om.example.demoB\nDemoProtosb\x06proto3')
|
|
28
|
+
|
|
29
|
+
_globals = globals()
|
|
30
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
31
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'grpc_pb2', _globals)
|
|
32
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
33
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
34
|
+
_globals['DESCRIPTOR']._serialized_options = b'\n\020com.example.demoB\nDemoProtos'
|
|
35
|
+
_globals['_GENERICRPCREQUEST_ARGSENTRY']._loaded_options = None
|
|
36
|
+
_globals['_GENERICRPCREQUEST_ARGSENTRY']._serialized_options = b'8\001'
|
|
37
|
+
_globals['_GENERICRPCRESPONSE_RESULTSENTRY']._loaded_options = None
|
|
38
|
+
_globals['_GENERICRPCRESPONSE_RESULTSENTRY']._serialized_options = b'8\001'
|
|
39
|
+
_globals['_SAMPLEDIRECTION']._serialized_start=3286
|
|
40
|
+
_globals['_SAMPLEDIRECTION']._serialized_end=3387
|
|
41
|
+
_globals['_SAMPLEFRAMEKIND']._serialized_start=3390
|
|
42
|
+
_globals['_SAMPLEFRAMEKIND']._serialized_end=3632
|
|
43
|
+
_globals['_GENERICRPCREQUEST']._serialized_start=26
|
|
44
|
+
_globals['_GENERICRPCREQUEST']._serialized_end=188
|
|
45
|
+
_globals['_GENERICRPCREQUEST_ARGSENTRY']._serialized_start=124
|
|
46
|
+
_globals['_GENERICRPCREQUEST_ARGSENTRY']._serialized_end=188
|
|
47
|
+
_globals['_GENERICRPCRESPONSE']._serialized_start=191
|
|
48
|
+
_globals['_GENERICRPCRESPONSE']._serialized_end=341
|
|
49
|
+
_globals['_GENERICRPCRESPONSE_RESULTSENTRY']._serialized_start=274
|
|
50
|
+
_globals['_GENERICRPCRESPONSE_RESULTSENTRY']._serialized_end=341
|
|
51
|
+
_globals['_ARRAYSHAPE']._serialized_start=343
|
|
52
|
+
_globals['_ARRAYSHAPE']._serialized_end=368
|
|
53
|
+
_globals['_COMPLEXNUMBER']._serialized_start=370
|
|
54
|
+
_globals['_COMPLEXNUMBER']._serialized_end=413
|
|
55
|
+
_globals['_COMPLEXNUMPYARRAY']._serialized_start=415
|
|
56
|
+
_globals['_COMPLEXNUMPYARRAY']._serialized_end=512
|
|
57
|
+
_globals['_REALNUMPYARRAY']._serialized_start=514
|
|
58
|
+
_globals['_REALNUMPYARRAY']._serialized_end=582
|
|
59
|
+
_globals['_ARGUMENT']._serialized_start=585
|
|
60
|
+
_globals['_ARGUMENT']._serialized_end=895
|
|
61
|
+
_globals['_NDARRAYVALUE']._serialized_start=897
|
|
62
|
+
_globals['_NDARRAYVALUE']._serialized_end=955
|
|
63
|
+
_globals['_DYNAMICVALUE']._serialized_start=958
|
|
64
|
+
_globals['_DYNAMICVALUE']._serialized_end=1191
|
|
65
|
+
_globals['_NAMEDVALUE']._serialized_start=1193
|
|
66
|
+
_globals['_NAMEDVALUE']._serialized_end=1259
|
|
67
|
+
_globals['_MUTATION']._serialized_start=1261
|
|
68
|
+
_globals['_MUTATION']._serialized_end=1327
|
|
69
|
+
_globals['_ERRORENVELOPE']._serialized_start=1330
|
|
70
|
+
_globals['_ERRORENVELOPE']._serialized_end=1506
|
|
71
|
+
_globals['_NEGOTIATEREQUEST']._serialized_start=1508
|
|
72
|
+
_globals['_NEGOTIATEREQUEST']._serialized_end=1623
|
|
73
|
+
_globals['_NEGOTIATERESPONSE']._serialized_start=1626
|
|
74
|
+
_globals['_NEGOTIATERESPONSE']._serialized_end=1780
|
|
75
|
+
_globals['_GETSCHEMAREQUEST']._serialized_start=1782
|
|
76
|
+
_globals['_GETSCHEMAREQUEST']._serialized_end=1840
|
|
77
|
+
_globals['_GETSCHEMARESPONSE']._serialized_start=1842
|
|
78
|
+
_globals['_GETSCHEMARESPONSE']._serialized_end=1968
|
|
79
|
+
_globals['_OPENSESSIONREQUEST']._serialized_start=1971
|
|
80
|
+
_globals['_OPENSESSIONREQUEST']._serialized_end=2107
|
|
81
|
+
_globals['_OPENSESSIONRESPONSE']._serialized_start=2110
|
|
82
|
+
_globals['_OPENSESSIONRESPONSE']._serialized_end=2348
|
|
83
|
+
_globals['_INVOKEREQUEST']._serialized_start=2350
|
|
84
|
+
_globals['_INVOKEREQUEST']._serialized_end=2475
|
|
85
|
+
_globals['_INVOKERESPONSE']._serialized_start=2478
|
|
86
|
+
_globals['_INVOKERESPONSE']._serialized_end=2616
|
|
87
|
+
_globals['_CLOSEHANDLEREQUEST']._serialized_start=2618
|
|
88
|
+
_globals['_CLOSEHANDLEREQUEST']._serialized_end=2674
|
|
89
|
+
_globals['_CLOSESESSIONREQUEST']._serialized_start=2676
|
|
90
|
+
_globals['_CLOSESESSIONREQUEST']._serialized_end=2717
|
|
91
|
+
_globals['_CLOSERESPONSE']._serialized_start=2719
|
|
92
|
+
_globals['_CLOSERESPONSE']._serialized_end=2791
|
|
93
|
+
_globals['_SAMPLEFRAME']._serialized_start=2794
|
|
94
|
+
_globals['_SAMPLEFRAME']._serialized_end=3284
|
|
95
|
+
_globals['_GENERICRPC']._serialized_start=3634
|
|
96
|
+
_globals['_GENERICRPC']._serialized_end=3715
|
|
97
|
+
_globals['_DYNAMICCONTROLV2']._serialized_start=3718
|
|
98
|
+
_globals['_DYNAMICCONTROLV2']._serialized_end=4167
|
|
99
|
+
_globals['_SAMPLEDATAV1']._serialized_start=4169
|
|
100
|
+
_globals['_SAMPLEDATAV1']._serialized_end=4251
|
|
101
|
+
# @@protoc_insertion_point(module_scope)
|