starlink-grpc-tools/dump_dish_status.py

44 lines
1.3 KiB
Python
Raw Normal View History

2020-12-22 22:16:33 -06:00
#!/usr/bin/python3
"""Simple example of get_status request using grpc call directly."""
import sys
2020-12-22 22:16:33 -06:00
import grpc
try:
from spacex.api.device import device_pb2
from spacex.api.device import device_pb2_grpc
except ModuleNotFoundError:
print("This script requires the generated gRPC protocol modules. See README file for details.",
file=sys.stderr)
sys.exit(1)
2020-12-22 22:16:33 -06:00
def wrap_ser(self, **kwargs):
ret = device_pb2.Request.SerializeToString(self, **kwargs)
print("request:", ret)
return ret
def wrap_des(s):
print("response:", s)
#return "Hello"
return device_pb2.Response.FromString(s)
# Note that if you remove the 'with' clause here, you need to separately
# call channel.close() when you're done with the gRPC connection.
with grpc.insecure_channel("192.168.100.1:9200") as channel:
method = channel.unary_unary('/SpaceX.API.Device.Device/Handle',
request_serializer=wrap_ser,
response_deserializer=None
#response_deserializer=wrap_des
)
response = method(device_pb2.Request(get_status={}), timeout=10)
2020-12-22 22:16:33 -06:00
2020-12-23 09:25:30 -06:00
# Dump everything
2020-12-22 22:16:33 -06:00
print(response)
2020-12-23 09:25:30 -06:00
# Just the software version
print("Software version:", response.dish_get_status.device_info.software_version)
2020-12-23 09:25:30 -06:00
# Check if connected
print("Not connected" if response.dish_get_status.HasField("outage") else "Connected")