--
-- Cet acteur permet de vérifier le comportement d'une voiture autonome.
--
package Auto is
-- Indique la destination voulue au calculateur d'itinéraire (le GPS).
-- Longitude, Latitude.
procedure Fixer_Destination (Long : Float ; Lat : Float) ;
-- Renvoie la vitesse actuelle de la voiture, en km/h.
function Vitesse return Float ;
-- Renvoie la durée écoulée depuis le début du trajet (depuis Fixer_Destination)
function Date return Float ;
-- Indique si la voiture est arrivée à destination
function Arrivee return Boolean ;
-- Active ou désactive le mode prudent (selon que Prudent est vrai ou faux).
-- Le mode prudent limite la vitesse à 60km/h.
procedure Regler_Mode (Prudent : Boolean) ;
-- Représente une action effectuée par la voiture : tourner, freiner, etc.
type T_Action is record
-- Direction des roues en degrés
-- Négatif = à gauche
-- Positif = à droite
-- 0 = tout droit
Direction : Float ;
-- Action sur l'accélérateur (entre 0 et 10)
-- 0 = pas d'accélération
-- 10 = accélération maximale
Accelere : Integer ;
-- Action sur les freins (entre 0 et 10)
-- 0 = pas de freinage
-- 10 = freinage maximal
Freinage : Integer ;
-- Ce booléen indique si cette action est une action d'urgence (évitement d'urgence, freinage d'urgence, etc.)
Urgence : Boolean ;
end record ;
-- Renvoie l'action effectuée en ce moment par la voiture.
function Action_Courante return T_Action ;
-- Attend quelques millisecondes.
-- La voiture commence alors une nouvelle action.
procedure Attend_Ms ;
end Auto ;