Add grpc initalisation, start adding streaming grpc control

This commit is contained in:
piv
2022-08-07 16:04:07 +09:30
parent d876fcbb2e
commit f48518e88f
5 changed files with 71 additions and 33 deletions

View File

@@ -2,16 +2,21 @@ pub mod motor_control_service {
tonic::include_proto!("motor_control");
}
use std::sync::{Arc, Mutex};
use car_rs::{Servo, Vehicle};
use motor_control_service::car_control_server::CarControl;
use tonic::{Request, Response, Status, Streaming};
use futures_util::StreamExt;
use self::motor_control_service::{
RecordingReqeust, RecordingResponse, SaveRequest, SaveResponse, SteeringRequest,
SteeringResponse, ThrottleRequest, ThrottleResponse, Vehicle2DRequest, Vehicle2DResponse,
};
#[derive(Debug)]
struct MotorControlService {}
pub struct MotorControlService {}
#[tonic::async_trait]
impl CarControl for MotorControlService {
@@ -31,8 +36,16 @@ impl CarControl for MotorControlService {
async fn stream_vehicle_2d(
&self,
_request: Request<Streaming<Vehicle2DRequest>>,
request: Request<Streaming<Vehicle2DRequest>>,
) -> Result<Response<Vehicle2DResponse>, Status> {
let mut stream = request.into_inner();
let mut timed_out = false;
while let Some(req) = stream.next().await {
if !timed_out {}
timed_out = true;
}
unimplemented!()
}