Use the throttle as the heartbeat message.
This commit is contained in:
@@ -16,6 +16,10 @@ class MotorServicer(motorService_pb2_grpc.CarControlServicer):
|
|||||||
self._timer = None
|
self._timer = None
|
||||||
|
|
||||||
def SetThrottle(self, request, context):
|
def SetThrottle(self, request, context):
|
||||||
|
# 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...
|
||||||
|
self.set_timeout(timeout_length)
|
||||||
return motorService_pb2.ThrottleResponse(throttleSet = (True if self.motor.set_throttle(request.throttle) else False))
|
return motorService_pb2.ThrottleResponse(throttleSet = (True if self.motor.set_throttle(request.throttle) else False))
|
||||||
|
|
||||||
def SetSteering(self, request, context):
|
def SetSteering(self, request, context):
|
||||||
@@ -23,12 +27,6 @@ class MotorServicer(motorService_pb2_grpc.CarControlServicer):
|
|||||||
self.servo.value = request.steering
|
self.servo.value = request.steering
|
||||||
return motorService_pb2.SteeringResponse(steeringSet = True)
|
return motorService_pb2.SteeringResponse(steeringSet = True)
|
||||||
|
|
||||||
def Heartbeat(self, request, context):
|
|
||||||
# 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...
|
|
||||||
self.set_timeout(timeout_length)
|
|
||||||
|
|
||||||
def set_timeout(self, min_timeout):
|
def set_timeout(self, min_timeout):
|
||||||
"""Stops the old timer and restarts it to the specified time.
|
"""Stops the old timer and restarts it to the specified time.
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
|||||||
package='MotorControl',
|
package='MotorControl',
|
||||||
syntax='proto3',
|
syntax='proto3',
|
||||||
serialized_options=None,
|
serialized_options=None,
|
||||||
serialized_pb=_b('\n\x12motorService.proto\x12\x0cMotorControl\"#\n\x0fThrottleRequest\x12\x10\n\x08throttle\x18\x01 \x01(\x02\"\'\n\x10ThrottleResponse\x12\x13\n\x0bthrottleSet\x18\x01 \x01(\x08\"#\n\x0fSteeringRequest\x12\x10\n\x08steering\x18\x01 \x01(\x02\"\'\n\x10SteeringResponse\x12\x13\n\x0bsteeringSet\x18\x01 \x01(\x08\"\"\n\x0eHeartbeatCheck\x12\x10\n\x08\x63ontinue\x18\x01 \x01(\x08\".\n\x16HeartbeatCheckResponse\x12\x14\n\x0c\x65rrorMessage\x18\x01 \x01(\t2\x81\x02\n\nCarControl\x12N\n\x0bSetThrottle\x12\x1d.MotorControl.ThrottleRequest\x1a\x1e.MotorControl.ThrottleResponse\"\x00\x12N\n\x0bSetSteering\x12\x1d.MotorControl.SteeringRequest\x1a\x1e.MotorControl.SteeringResponse\"\x00\x12S\n\tHeartbeat\x12\x1c.MotorControl.HeartbeatCheck\x1a$.MotorControl.HeartbeatCheckResponse\"\x00(\x01\x62\x06proto3')
|
serialized_pb=_b('\n\x12motorService.proto\x12\x0cMotorControl\"#\n\x0fThrottleRequest\x12\x10\n\x08throttle\x18\x01 \x01(\x02\"\'\n\x10ThrottleResponse\x12\x13\n\x0bthrottleSet\x18\x01 \x01(\x08\"#\n\x0fSteeringRequest\x12\x10\n\x08steering\x18\x01 \x01(\x02\"\'\n\x10SteeringResponse\x12\x13\n\x0bsteeringSet\x18\x01 \x01(\x08\x32\xae\x01\n\nCarControl\x12P\n\x0bSetThrottle\x12\x1d.MotorControl.ThrottleRequest\x1a\x1e.MotorControl.ThrottleResponse\"\x00(\x01\x12N\n\x0bSetSteering\x12\x1d.MotorControl.SteeringRequest\x1a\x1e.MotorControl.SteeringResponse\"\x00\x62\x06proto3')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -149,74 +149,10 @@ _STEERINGRESPONSE = _descriptor.Descriptor(
|
|||||||
serialized_end=190,
|
serialized_end=190,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
_HEARTBEATCHECK = _descriptor.Descriptor(
|
|
||||||
name='HeartbeatCheck',
|
|
||||||
full_name='MotorControl.HeartbeatCheck',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='continue', full_name='MotorControl.HeartbeatCheck.continue', index=0,
|
|
||||||
number=1, type=8, cpp_type=7, label=1,
|
|
||||||
has_default_value=False, default_value=False,
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
serialized_options=None, file=DESCRIPTOR),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
serialized_options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=192,
|
|
||||||
serialized_end=226,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
_HEARTBEATCHECKRESPONSE = _descriptor.Descriptor(
|
|
||||||
name='HeartbeatCheckResponse',
|
|
||||||
full_name='MotorControl.HeartbeatCheckResponse',
|
|
||||||
filename=None,
|
|
||||||
file=DESCRIPTOR,
|
|
||||||
containing_type=None,
|
|
||||||
fields=[
|
|
||||||
_descriptor.FieldDescriptor(
|
|
||||||
name='errorMessage', full_name='MotorControl.HeartbeatCheckResponse.errorMessage', index=0,
|
|
||||||
number=1, type=9, cpp_type=9, label=1,
|
|
||||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
|
||||||
message_type=None, enum_type=None, containing_type=None,
|
|
||||||
is_extension=False, extension_scope=None,
|
|
||||||
serialized_options=None, file=DESCRIPTOR),
|
|
||||||
],
|
|
||||||
extensions=[
|
|
||||||
],
|
|
||||||
nested_types=[],
|
|
||||||
enum_types=[
|
|
||||||
],
|
|
||||||
serialized_options=None,
|
|
||||||
is_extendable=False,
|
|
||||||
syntax='proto3',
|
|
||||||
extension_ranges=[],
|
|
||||||
oneofs=[
|
|
||||||
],
|
|
||||||
serialized_start=228,
|
|
||||||
serialized_end=274,
|
|
||||||
)
|
|
||||||
|
|
||||||
DESCRIPTOR.message_types_by_name['ThrottleRequest'] = _THROTTLEREQUEST
|
DESCRIPTOR.message_types_by_name['ThrottleRequest'] = _THROTTLEREQUEST
|
||||||
DESCRIPTOR.message_types_by_name['ThrottleResponse'] = _THROTTLERESPONSE
|
DESCRIPTOR.message_types_by_name['ThrottleResponse'] = _THROTTLERESPONSE
|
||||||
DESCRIPTOR.message_types_by_name['SteeringRequest'] = _STEERINGREQUEST
|
DESCRIPTOR.message_types_by_name['SteeringRequest'] = _STEERINGREQUEST
|
||||||
DESCRIPTOR.message_types_by_name['SteeringResponse'] = _STEERINGRESPONSE
|
DESCRIPTOR.message_types_by_name['SteeringResponse'] = _STEERINGRESPONSE
|
||||||
DESCRIPTOR.message_types_by_name['HeartbeatCheck'] = _HEARTBEATCHECK
|
|
||||||
DESCRIPTOR.message_types_by_name['HeartbeatCheckResponse'] = _HEARTBEATCHECKRESPONSE
|
|
||||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||||
|
|
||||||
ThrottleRequest = _reflection.GeneratedProtocolMessageType('ThrottleRequest', (_message.Message,), {
|
ThrottleRequest = _reflection.GeneratedProtocolMessageType('ThrottleRequest', (_message.Message,), {
|
||||||
@@ -247,20 +183,6 @@ SteeringResponse = _reflection.GeneratedProtocolMessageType('SteeringResponse',
|
|||||||
})
|
})
|
||||||
_sym_db.RegisterMessage(SteeringResponse)
|
_sym_db.RegisterMessage(SteeringResponse)
|
||||||
|
|
||||||
HeartbeatCheck = _reflection.GeneratedProtocolMessageType('HeartbeatCheck', (_message.Message,), {
|
|
||||||
'DESCRIPTOR' : _HEARTBEATCHECK,
|
|
||||||
'__module__' : 'motorService_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:MotorControl.HeartbeatCheck)
|
|
||||||
})
|
|
||||||
_sym_db.RegisterMessage(HeartbeatCheck)
|
|
||||||
|
|
||||||
HeartbeatCheckResponse = _reflection.GeneratedProtocolMessageType('HeartbeatCheckResponse', (_message.Message,), {
|
|
||||||
'DESCRIPTOR' : _HEARTBEATCHECKRESPONSE,
|
|
||||||
'__module__' : 'motorService_pb2'
|
|
||||||
# @@protoc_insertion_point(class_scope:MotorControl.HeartbeatCheckResponse)
|
|
||||||
})
|
|
||||||
_sym_db.RegisterMessage(HeartbeatCheckResponse)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_CARCONTROL = _descriptor.ServiceDescriptor(
|
_CARCONTROL = _descriptor.ServiceDescriptor(
|
||||||
@@ -269,8 +191,8 @@ _CARCONTROL = _descriptor.ServiceDescriptor(
|
|||||||
file=DESCRIPTOR,
|
file=DESCRIPTOR,
|
||||||
index=0,
|
index=0,
|
||||||
serialized_options=None,
|
serialized_options=None,
|
||||||
serialized_start=277,
|
serialized_start=193,
|
||||||
serialized_end=534,
|
serialized_end=367,
|
||||||
methods=[
|
methods=[
|
||||||
_descriptor.MethodDescriptor(
|
_descriptor.MethodDescriptor(
|
||||||
name='SetThrottle',
|
name='SetThrottle',
|
||||||
@@ -290,15 +212,6 @@ _CARCONTROL = _descriptor.ServiceDescriptor(
|
|||||||
output_type=_STEERINGRESPONSE,
|
output_type=_STEERINGRESPONSE,
|
||||||
serialized_options=None,
|
serialized_options=None,
|
||||||
),
|
),
|
||||||
_descriptor.MethodDescriptor(
|
|
||||||
name='Heartbeat',
|
|
||||||
full_name='MotorControl.CarControl.Heartbeat',
|
|
||||||
index=2,
|
|
||||||
containing_service=None,
|
|
||||||
input_type=_HEARTBEATCHECK,
|
|
||||||
output_type=_HEARTBEATCHECKRESPONSE,
|
|
||||||
serialized_options=None,
|
|
||||||
),
|
|
||||||
])
|
])
|
||||||
_sym_db.RegisterServiceDescriptor(_CARCONTROL)
|
_sym_db.RegisterServiceDescriptor(_CARCONTROL)
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ class CarControlStub(object):
|
|||||||
Args:
|
Args:
|
||||||
channel: A grpc.Channel.
|
channel: A grpc.Channel.
|
||||||
"""
|
"""
|
||||||
self.SetThrottle = channel.unary_unary(
|
self.SetThrottle = channel.stream_unary(
|
||||||
'/MotorControl.CarControl/SetThrottle',
|
'/MotorControl.CarControl/SetThrottle',
|
||||||
request_serializer=motorService__pb2.ThrottleRequest.SerializeToString,
|
request_serializer=motorService__pb2.ThrottleRequest.SerializeToString,
|
||||||
response_deserializer=motorService__pb2.ThrottleResponse.FromString,
|
response_deserializer=motorService__pb2.ThrottleResponse.FromString,
|
||||||
@@ -24,18 +24,13 @@ class CarControlStub(object):
|
|||||||
request_serializer=motorService__pb2.SteeringRequest.SerializeToString,
|
request_serializer=motorService__pb2.SteeringRequest.SerializeToString,
|
||||||
response_deserializer=motorService__pb2.SteeringResponse.FromString,
|
response_deserializer=motorService__pb2.SteeringResponse.FromString,
|
||||||
)
|
)
|
||||||
self.Heartbeat = channel.stream_unary(
|
|
||||||
'/MotorControl.CarControl/Heartbeat',
|
|
||||||
request_serializer=motorService__pb2.HeartbeatCheck.SerializeToString,
|
|
||||||
response_deserializer=motorService__pb2.HeartbeatCheckResponse.FromString,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class CarControlServicer(object):
|
class CarControlServicer(object):
|
||||||
# missing associated documentation comment in .proto file
|
# missing associated documentation comment in .proto file
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def SetThrottle(self, request, context):
|
def SetThrottle(self, request_iterator, context):
|
||||||
# missing associated documentation comment in .proto file
|
# missing associated documentation comment in .proto file
|
||||||
pass
|
pass
|
||||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||||
@@ -49,17 +44,10 @@ class CarControlServicer(object):
|
|||||||
context.set_details('Method not implemented!')
|
context.set_details('Method not implemented!')
|
||||||
raise NotImplementedError('Method not implemented!')
|
raise NotImplementedError('Method not implemented!')
|
||||||
|
|
||||||
def Heartbeat(self, request_iterator, context):
|
|
||||||
# missing associated documentation comment in .proto file
|
|
||||||
pass
|
|
||||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
|
||||||
context.set_details('Method not implemented!')
|
|
||||||
raise NotImplementedError('Method not implemented!')
|
|
||||||
|
|
||||||
|
|
||||||
def add_CarControlServicer_to_server(servicer, server):
|
def add_CarControlServicer_to_server(servicer, server):
|
||||||
rpc_method_handlers = {
|
rpc_method_handlers = {
|
||||||
'SetThrottle': grpc.unary_unary_rpc_method_handler(
|
'SetThrottle': grpc.stream_unary_rpc_method_handler(
|
||||||
servicer.SetThrottle,
|
servicer.SetThrottle,
|
||||||
request_deserializer=motorService__pb2.ThrottleRequest.FromString,
|
request_deserializer=motorService__pb2.ThrottleRequest.FromString,
|
||||||
response_serializer=motorService__pb2.ThrottleResponse.SerializeToString,
|
response_serializer=motorService__pb2.ThrottleResponse.SerializeToString,
|
||||||
@@ -69,11 +57,6 @@ def add_CarControlServicer_to_server(servicer, server):
|
|||||||
request_deserializer=motorService__pb2.SteeringRequest.FromString,
|
request_deserializer=motorService__pb2.SteeringRequest.FromString,
|
||||||
response_serializer=motorService__pb2.SteeringResponse.SerializeToString,
|
response_serializer=motorService__pb2.SteeringResponse.SerializeToString,
|
||||||
),
|
),
|
||||||
'Heartbeat': grpc.stream_unary_rpc_method_handler(
|
|
||||||
servicer.Heartbeat,
|
|
||||||
request_deserializer=motorService__pb2.HeartbeatCheck.FromString,
|
|
||||||
response_serializer=motorService__pb2.HeartbeatCheckResponse.SerializeToString,
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
generic_handler = grpc.method_handlers_generic_handler(
|
generic_handler = grpc.method_handlers_generic_handler(
|
||||||
'MotorControl.CarControl', rpc_method_handlers)
|
'MotorControl.CarControl', rpc_method_handlers)
|
||||||
|
|||||||
@@ -18,16 +18,7 @@ message SteeringResponse{
|
|||||||
bool steeringSet = 1;
|
bool steeringSet = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message HeartbeatCheck{
|
|
||||||
bool continue = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message HeartbeatCheckResponse{
|
|
||||||
string errorMessage = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
service CarControl{
|
service CarControl{
|
||||||
rpc SetThrottle(ThrottleRequest) returns (ThrottleResponse){}
|
rpc SetThrottle(stream ThrottleRequest) returns (ThrottleResponse){}
|
||||||
rpc SetSteering(SteeringRequest) returns (SteeringResponse){}
|
rpc SetSteering(SteeringRequest) returns (SteeringResponse){}
|
||||||
rpc Heartbeat(HeartbeatCheck) returns (HeartbeatCheckResponse){}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user