Source code for ensemble.metaclass.coordinator

"""
Abstract Gap Coordinator
========================
This module implements a general metaclass for a vehicle gap coordinator.
"""


# ============================================================================
# STANDARD  IMPORTS
# ============================================================================

import abc

# ============================================================================
# CLASS AND DEFINITIONS
# ============================================================================


[docs]class AbsSingleGapCoord(metaclass=abc.ABCMeta): # @abc.abstractproperty # def ego(self): # """Ego vehicle information""" # pass @abc.abstractproperty def joinable(self): """Indicates if the coordinator is joinable""" pass
[docs] @abc.abstractmethod def cancel_join_request(self, value): """Determines if a join request needs to be cancelled""" pass
@abc.abstractproperty def dv(self): """Differential speed @current time""" pass @abc.abstractproperty def dx(self): """Headway space @current time""" pass @abc.abstractproperty def ttd(self): """Total travel distance @current time""" pass @abc.abstractproperty def speed(self): """Speed @current time""" pass @abc.abstractproperty def acceleration(self): """Acceleration @current time""" pass @abc.abstractproperty def x(self): """Distance on link @current time""" pass @abc.abstractproperty def vehid(self): """Vehicle identifier""" pass @abc.abstractproperty def control(self): """Applied control @current time""" pass @abc.abstractproperty def status(self): """Platoon status @current time""" pass @abc.abstractproperty def platoon(self): """Platoon enabled""" pass @abc.abstractproperty def comv2x(self): """Communication availability""" pass @abc.abstractproperty def positionid(self): """Position within the platoon""" pass @abc.abstractproperty def history_state(self): """Historical status""" pass @abc.abstractproperty def history_control(self): """Historical control""" pass @abc.abstractproperty def history_reference(self): """Historical control""" pass
[docs] @abc.abstractmethod def get_step_data(self) -> tuple: """Get single step data""" pass