Interfaçage OpenFlyers et Charterware
Présentation
L'objet de cette page est de présenter la configuration de l'interfaçage d'OpenFlyers avec Charterware et l'utilisation associée.
Chronologie de la mise en place
La mise en place de Charterware et la synchronisation avec OpenFlyers suit la chronologie suivante :
- Achat des boitiers et souscription à l’abonnement de transmission des données chez Charterware. La tarification est disponible ici : https://www.charterware.de/price.html. Côté OpenFlyers, l’interfaçage ne génère aucun coût supplémentaire pour toute mise en place avant le 31 décembre 2019. Par la suite, OpenFlyers facturera surement le temps de travail consacré à cet interfaçage.
- Installation des boitiers par l'atelier de maintenance ou l'atelier radio de la structure
- Interfaçage par OpenFlyers
Activation de l'interfaçage
Afin de permettre à OpenFlyers de s'interfacer avec Charterware, il faut :
- Créer différents champs métier :
- Modifier les utilisateurs et les ressources afin de leur rajouter leurs numéros correspondants
- Activer le paramètre Gestion de Charterware dans le formulaire Structure->Paramétrage
- Cliquer sur le bouton enregistrer
- Suite à cela, il faut renseigner les paramètres de gestion de Charterware qui apparaissent.
Attention : L'interfaçage n'est pas mis en place sur les dépôts de test OpenFlyers.
Paramétrage des arrondis
Charterware transmet à OpenFlyers des dates à la seconde. OpenFlyers fonctionne avec des dates à la minute. Il est donc nécessaire de définir des formules d'arrondis dans le paramétrage de Charterware de la plateforme.
Les variables suivantes sont utilisables dans les formules :
- CHARTERWARE_LANDING_DATE : Date d’atterrissage
- CHARTERWARE_TAKEOFF_DATE : Date de décollage
- CHARTERWARE_ONBLOCK_DATE : Date de départ
- CHARTERWARE_OFFBLOCK_DATE : Date de fin
Ces variables sont directement transmises par Charterware.
Les fonctions suivantes peuvent être utilisées dans les formules :
- roundCeil: Arrondit à la minute supérieur la date transmise en paramètre
- roundFloor: Arrondit à la minute inférieur la date transmise en paramètre
- formatDate: Permet de formater une date
- strtotime : Transforme une date en un timestamp
Données récupérés via Charterware
En récupérant les vols via Charterware les informations suivantes sont récupérées ou calculées.
- Aéronef utilisé (donnée planecode)
- Horodatage du début du vol (donnée offblock)
- Durée du vol (par calcul de la différence entre les données offblock et onblock)
- Temps en l'air (par calcul de la différence entre les données landing et takeoff)
- Personnes à bord (données pilot1 et pilot2)
- Lieu de départ (donnée flightfrom)
- Lieu d'arrivé (donnée flightto)
- Nombre d’atterrissage (donnée nooflandings)
- Rapport d'atterrissage dur
Récupération des vols Charterware
Chaque minute le robot OpenFlyers interroge le serveur Charterware pour savoir si de nouveaux vols ont été enregistrés par Charterware. Si c'est le cas, alors il sont sauvegarder dans OpenFlyers et supprimer des vols en attente de récupération côté Charterware.
Charterware utilise un système d'identifiant pour retrouver les pilotes et les aéronefs il est donc nécessaire de créer les champs métiers nécessaires et de les renseigner dans l'interface d'OpenFlyers.
- Si l'identifiant d'un utilisateur Charterware ne peut être retrouvé dans OpenFlyers alors le robot se comporte comme si les pilotes n'avaient pas été transmis par Charterware.
- Si l'identifiant d'un aéronef Charterware ne peut être retrouvé dans OpenFlyers alors le robot n'enregistrera pas le vol.
Afin de retrouver un maximum d'informations le robot tente de retrouver une réservation avec la même ressource correspondant au vol communiqué par charterware :
- Il cherche s'il existe une réservation dont les horaires comprennent l'heure médiane du vol charterware. Si c'est le cas, il se base sur les informations de cette réservation.
- S'il n'y a aucune réservation, il cherche une réservation avec la même ressource dont les horaires sont compris entre le début et la fin du vol remonté par Charterware.
- S'il y a plusieurs réservations, alors il n'en prend aucune.
- S'il y a une seule réservation :
- Si Charterware a transmis les identifiants pilotes alors le robot vérifie si ceux-ci correspondent à ceux de la réservation. Si c'est le cas il prend en compte les informations de la réservation.
- Si Charterware n'a pas transmis les identifiants pilotes, les informations de la réservation sont prises en compte.
Une fois qu'une réservation est identifiée comme correspondre au vol remonté par Charterware, les informations de la réservation sont prises en compte par le robot.
Les données suivantes sont alors récupérées :
Statut des pilotes
Pour chaque pilote :
- Si un vol récupéré dans Charterware peut être associé à une réservation => Les statuts des pilotes sont celles définies dans la réservation.
- Si le vol ne peut être associé :
- S'il n'y a qu'un statut autorisé pour la place du pilote et pour l'avion => Le statut du pilote est ce statut.
- Si le pilote est sur la première place => Le statut du pilote est le statut "pilote" si il n'existe pas le premier statut.
- Si le pilote est sur la seconde place => Le statut du pilote est le statut "Instructeur" si il n'existe pas le second statut.
Place des pilotes
- Si un vol récupéré dans Charterware peut être associé à une réservation => Les places des pilotes sont celles définies dans la réservation.
- Si le vol ne peut être associé :
- S'il y a un seul pilote => Sa place est celle par défaut (0, Gauche).
- S'il y a deux pilotes et que un seul à l'autorisation pour être sur la place de droite => Le pilote ayant l'autorisation est à la place de droite et l'autre à la place de gauche.
- Si les deux pilotes ont les autorisations pour être sur la place de droite => Le pilote 1 est sur la place de gauche le pilote 2 est sur la place de droite.
Type d'activité
- Si un vol récupéré dans Charterware peut être associé à une réservation => Les types d'activités sont celles définies dans la réservation.
- Si le vol ne peut être associé :
- S'il y a deux pilotes et que le type d'activité par défaut pour deux pilotes est défini => Le type d'activité est celle définie par défaut.
- S'il y a zero ou un pilote et que le type d'activité par défaut pour zero ou un pilote est défini => Le type d'activité est celle définie par défaut.
- Si les types d'activité par défaut ne sont pas définies => Le type d'activité est le premier type d'activité trouvé.
Récupération des traces de vols
Pour chaque vol détecté par Charterware une trace de vol est envoyé en pièce jointe d'un email par Charterware (fichier au format kml). Cet envoi a lieu entre 5 et 10 minutes après l'heure bloc arrivée. Un robot mis en place par OpenFlyers va chercher chaque minute si de nouveaux emails ont été transmis par OpenFlyers. La connexion à la messagerie se fait via les paramètres vus précédemment. Le robot fonctionne ainsi :
- Recherche d'emails dans la boîte de réception.
- Recherche de l'objet de l'email.
- Recherche de la pièce jointe de l'email.
- Recherche du vol associé à l'email (par date et par aéronef)
- Ajout de la trace de vol dans OpenFlyers
- Déplacement de l'email dans le répertoire parsed_flight_track de la messagerie.
Pour rechercher le vol, le robot se base sur l'objet des emails. Les emails envoyés par Charterware ayant des objets composés ainsi "Nom de l'aéronef" "Date offblock" Il est alors possible de retrouver le vol associé en utilisant ces deux données. Une fois l'email traité, il est déplacé dans le répertoire parsed_flight_track. Si ce répertoire n'existe pas, il est alors créé.
Les traces de vols sont téléchargeables depuis les interfaces Activités > Carnet de route et Activités > Carnet de vol.