gRPC Mission REST

gRPC Mission REST Communication Module

Note

Features: - gRPC server for mission reception and processing - gRPC client for status updates - Queue-based inter-service communication - Comprehensive logging system

class grpc_mission_rest.MissionCommunicationService(*args: Any, **kwargs: Any)[source]

Bases: MissionCommunicationServicer

gRPC service handler for mission operations.

Parameters:
  • send_ros2_queue – Queue for ROS2-bound messages

  • receive_ros2_queue – Queue for ROS2-originated messages

  • send_db_queue – Queue for database operations

  • receive_db_queue – Queue for database responses

  • send_mqtt_queue – Queue for MQTT messages

  • send_rest_queue – Queue for REST updates

  • mission_logger – Configured logger instance

__init__(send_ros2_queue: Queue, receive_ros2_queue: Queue, send_db_queue: Queue, receive_db_queue: Queue, send_mqtt_queue: Queue, send_rest_queue: Queue, mission_logger: Logger)[source]
SendMission(request: Any, context: grpc.ServicerContext) GRPC.mission_pb2.MissionResponse[source]

Process incoming mission requests.

Parameters:
  • request – gRPC request containing mission data

  • context – gRPC connection context

Returns:

Mission response with confirmation ID

Raises:

grpc.RpcError for critical processing failures

grpc_mission_rest.run_client(send_rest_queue: Queue, mission_logger: Logger) None[source]

Continuous client for sending REST status updates.

Parameters:
  • send_rest_queue – Queue containing status updates

  • mission_logger – Configured logger instance

grpc_mission_rest.run_server(send_vehicle_queue: Queue, receive_vehicle_queue: Queue, send_db_queue: Queue, receive_db_queue: Queue, send_mqtt_queue: Queue, send_rest_queue: Queue, mission_logger: Logger) None[source]

gRPC server instance manager.

Parameters:
  • send_vehicle_queue – Vehicle command queue

  • receive_vehicle_queue – Vehicle status queue

  • send_db_queue – Database operation queue

  • receive_db_queue – Database response queue

  • send_mqtt_queue – MQTT message queue

  • send_rest_queue – REST update queue

  • mission_logger – Configured logger instance

grpc_mission_rest.start_grpc_mission_rest(send_vehicle_queue: Queue, receive_vehicle_queue: Queue, send_db_queue: Queue, receive_db_queue: Queue, send_mqtt_queue: Queue, send_rest_queue: Queue, mission_logger: Logger) Queue[source]

Initialize and start gRPC communication components.

Parameters:
  • send_vehicle_queue – Vehicle command queue

  • receive_vehicle_queue – Vehicle status queue

  • send_db_queue – Database operation queue

  • receive_db_queue – Database response queue

  • send_mqtt_queue – MQTT message queue

  • send_rest_queue – REST update queue

  • mission_logger – Configured logger instance

Returns:

Mission result queue

grpc_mission_rest.create_logger(logger_name: str, log_file: str) Logger[source]

Configure and return a concurrent-safe logger instance.

Parameters:
  • logger_name – Name for the logger instance

  • log_file – Path to log file

Returns:

Configured logger instance