starlink-grpc-tools/dump_dish_status.py
sparky8512 48aebd6289 Emit specific error if protocol modules not found
This has now tripped up more than one user (see issues #47 and #53). There is a note in the README about this, but it's easy to miss if you don't read it thoroughly.
2022-08-17 13:59:22 -07:00

31 lines
1,018 B
Python

#!/usr/bin/python3
"""Simple example of get_status request using grpc call directly."""
import sys
import grpc
try:
from spacex.api.device import device_pb2
from spacex.api.device import device_pb2_grpc
from spacex.api.device import dish_pb2
except ModuleNotFoundError:
print("This script requires the generated gRPC protocol modules. "
"See README file for details.",
file=sys.stderr)
sys.exit(1)
# 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:
stub = device_pb2_grpc.DeviceStub(channel)
response = stub.Handle(device_pb2.Request(get_status={}), timeout=10)
# Dump everything
print(response)
# Just the software version
print("Software version:", response.dish_get_status.device_info.software_version)
# Check if connected
print("Not connected" if response.dish_get_status.HasField("outage") else "Connected")