grpc added create session and set session location
This commit is contained in:
parent
e819b706bc
commit
fcff9e4551
3 changed files with 98 additions and 6 deletions
|
@ -8,11 +8,22 @@ import core_pb2
|
|||
import core_pb2_grpc
|
||||
|
||||
|
||||
def update_proto(obj, **kwargs):
|
||||
for key in kwargs:
|
||||
value = kwargs[key]
|
||||
if value is not None:
|
||||
logging.info("setting proto key(%s) value(%s)", key, value)
|
||||
setattr(obj, key, value)
|
||||
|
||||
|
||||
class CoreApiClient(object):
|
||||
def __init__(self, address="localhost:50051"):
|
||||
self.address = address
|
||||
self.stub = None
|
||||
|
||||
def create_session(self):
|
||||
return self.stub.CreateSession(core_pb2.CreateSessionRequest())
|
||||
|
||||
def get_sessions(self):
|
||||
return self.stub.GetSessions(core_pb2.SessionsRequest())
|
||||
|
||||
|
@ -27,10 +38,17 @@ class CoreApiClient(object):
|
|||
return self.stub.GetSessionOptions(request)
|
||||
|
||||
def get_session_location(self, _id):
|
||||
request = core_pb2.SessionLocationRequest()
|
||||
request = core_pb2.GetSessionLocationRequest()
|
||||
request.id = _id
|
||||
return self.stub.GetSessionLocation(request)
|
||||
|
||||
def set_session_location(self, _id, x=None, y=None , z=None, lat=None, lon=None, alt=None, scale=None):
|
||||
request = core_pb2.SetSessionLocationRequest()
|
||||
request.id = _id
|
||||
update_proto(request.position, x=x, y=y, z=z, lat=lat, lon=lon, alt=alt)
|
||||
update_proto(request, scale=scale)
|
||||
return self.stub.SetSessionLocation(request)
|
||||
|
||||
@contextmanager
|
||||
def connect(self):
|
||||
channel = grpc.insecure_channel(self.address)
|
||||
|
@ -44,15 +62,33 @@ class CoreApiClient(object):
|
|||
def main():
|
||||
client = CoreApiClient()
|
||||
with client.connect():
|
||||
# create session
|
||||
response = client.create_session()
|
||||
print("created session: %s" % response)
|
||||
|
||||
response = client.get_sessions()
|
||||
print("core client received: %s" % response)
|
||||
|
||||
if len(response.sessions) > 0:
|
||||
session_data = response.sessions[0]
|
||||
|
||||
# set session location
|
||||
response = client.set_session_location(
|
||||
session_data.id,
|
||||
x=0, y=0, z=None,
|
||||
lat=47.57917, lon=-122.13232, alt=2.0,
|
||||
scale=150000.0
|
||||
)
|
||||
print("set location response: %s" % response)
|
||||
|
||||
# get session
|
||||
session = client.get_session(session_data.id)
|
||||
print(session)
|
||||
|
||||
# get options
|
||||
print(client.get_session_options(session_data.id))
|
||||
|
||||
# get location
|
||||
print(client.get_session_location(session_data.id))
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue