State Vector Manager

State Vector Management Module

Note

Features: - Multi-service state vector distribution (Database, MQTT) - Thread-safe queue processing - Timestamp normalization - Comprehensive logging

class sv_manager.StateVectorManagerThread(receive_sv_queue: Queue, sv_logger: Logger)[source]

Bases: Thread

Thread-based state vector processor and distributor.

Parameters:
  • receive_sv_queue – Thread-safe queue for incoming state vectors

  • sv_logger – Configured logger instance

__init__(receive_sv_queue: Queue, sv_logger: Logger)[source]

This constructor should always be called with keyword arguments. Arguments are:

group should be None; reserved for future extension when a ThreadGroup class is implemented.

target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.

args is a list or tuple of arguments for the target invocation. Defaults to ().

kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.

context is the contextvars.Context value to use for the thread. The default value is None, which means to check sys.flags.thread_inherit_context. If that flag is true, use a copy of the context of the caller. If false, use an empty context. To explicitly start with an empty context, pass a new instance of contextvars.Context(). To explicitly start with a copy of the current context, pass the value from contextvars.copy_context().

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

run() None[source]

Main processing loop for state vector management.

process_queue() None[source]

Process messages from the state vector queue.

process_data(raw_data: str) Dict[str, Any][source]

Normalize and enhance incoming state vector data.

distribute_data(vehicle_id: int, data: Dict[str, Any]) None[source]

Distribute processed data to all downstream services.

send_to_service(service: Literal['DB', 'MQTT'], vehicle_id: int, data: Dict[str, Any]) None[source]

Format and send data to specified service.

sv_manager.start_sv_manager(receive_sv_queue: Queue, sv_logger: Logger) StateVectorManagerThread[source]

Initialize and start state vector management thread.

Parameters:
  • receive_sv_queue – Shared queue for state vector data

  • sv_logger – Configured logger instance

Returns:

Running manager thread instance

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

Configure concurrent-safe logging system.

Parameters:
  • logger_name – Namespace for the logger

  • log_file – Path to log file location

Returns:

Configured logger instance