From 5024796785088d336f0c9e24fb39c73af93d1981 Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Thu, 14 Nov 2019 18:50:26 +1030 Subject: [PATCH] Fix server, add dummy python controller. --- MotorControl/MotorServer.py | 6 ++--- MotorControl/PythonRemoteController.py | 34 +++++++------------------- MotorControl/motorService_pb2_grpc.py | 2 +- 3 files changed, 13 insertions(+), 29 deletions(-) diff --git a/MotorControl/MotorServer.py b/MotorControl/MotorServer.py index e042e5a..fbceb20 100755 --- a/MotorControl/MotorServer.py +++ b/MotorControl/MotorServer.py @@ -14,7 +14,7 @@ servo_pin = 18 timeout_length = 3 motor = Motor() -servo = Servo() +servo = Servo(servo_pin) class MotorServicer(motorService_pb2_grpc.CarControlServicer): def __init__(self): @@ -24,7 +24,7 @@ class MotorServicer(motorService_pb2_grpc.CarControlServicer): self._timer = None def SetThrottle(self, request_iterator, context): - # If we don't get a response every 3 seconds, stop the car. + # If we don't get a response every 3 seconds, stop the car. # This isn't a stream right now, however may change it to be so since we'll constantly # be sending values... throttleFailed = False @@ -58,7 +58,7 @@ class MotorServicer(motorService_pb2_grpc.CarControlServicer): self.motor.stop() def start_server(self): - server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) + server = grpc.server(futures.ThreadPoolExecutor(max_workers=8)) motorService_pb2_grpc.add_CarControlServicer_to_server(MotorServicer(), server) server.add_insecure_port('[::]:50051') server.start() diff --git a/MotorControl/PythonRemoteController.py b/MotorControl/PythonRemoteController.py index ab4e20d..4777853 100644 --- a/MotorControl/PythonRemoteController.py +++ b/MotorControl/PythonRemoteController.py @@ -2,10 +2,9 @@ print("Connecting to pi") import grpc from concurrent import futures -from .MotorServer import MotorServicer -from . import motorService_pb2_grpc -import random -from threading import Timer +import motorService_pb2_grpc +from motorService_pb2 import ThrottleRequest +import time throttle = 0 timer = None @@ -21,30 +20,15 @@ class ThrottleIterator: def __next__(self): if throttle > 1 or throttle < -1: raise StopIteration - return throttle + time.sleep(1) + return ThrottleRequest(throttle=throttle) -def serve(): - server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) - motorService_pb2_grpc.add_CarControlServicer_to_server( - MotorServicer(), server) - server.add_insecure_port('[::]:50051') - server.start() - -def resetThrottle(): - global throttle - throttle = random.random() * 2 - 1 - global timer - if timer is not None: - timer.cancel() - timer = Timer(10, resetThrottle) - -serve() - -timer = Timer(10, resetThrottle) - -channel = grpc.insecure_channel('localhost:50051') +channel = grpc.insecure_channel('10.0.0.53:50051') stub = motorService_pb2_grpc.CarControlStub(channel) stub.SetThrottle(ThrottleIterator()) +while True: + inp = int(input('Please enter a value for the throttle between -100 and 100')) + throttle = inp / 100 diff --git a/MotorControl/motorService_pb2_grpc.py b/MotorControl/motorService_pb2_grpc.py index 93e3a6d..e6b1eff 100644 --- a/MotorControl/motorService_pb2_grpc.py +++ b/MotorControl/motorService_pb2_grpc.py @@ -1,7 +1,7 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! import grpc -import car.MotorControl.motorService_pb2 as motorService__pb2 +import MotorControl.motorService_pb2 as motorService__pb2 class CarControlStub(object):