Conventions de dénomination des packs de services

Les noms des packs de services sont définis dans une hiérarchie.

  • Chaque VM (identifiée par un nom de VM) est un déploiement unique du système d'exploitation du profil SDV Core.

  • Chaque package (identifié par un nom de package) peut contenir plusieurs packs de services.

  • Chaque pack de services (identifié par un nom de pack de services) peut être instancié plusieurs fois sur la même VM.

  • Chaque instance de pack de services est identifiée par un nom d'instance de pack de services attribué au moment du chargement.

Nom de la VM SDV

Le nom de la VM est un identifiant unique associé à chaque déploiement d'un profil SDV Core , comme spécifié dans la configuration de la VM du véhicule (vvmconfig). Le nom de la VM est utilisé dans la dénomination comme séparation logique des services le long des limites de la VM dans un véhicule. Voici quelques exemples :

  • cdc
  • mechatronics
  • pcu
  • telematics-unit

Les restrictions de dénomination suivantes s'appliquent.

  • Le nom de la VM doit commencer par une lettre [a-z].
  • Le nom de la VM ne doit pas se terminer par un trait d'union.
  • Le nom de la VM ne doit pas dépasser 31 caractères.
  • Tous les caractères doivent être alphanumériques minuscules ou un trait d'union [a-z0-9\-].
  • Les traits d'union dans le nom ne doivent pas apparaître consécutivement plus d'une fois.

Le nom de la VM est vérifié pour s'assurer qu'il est unique lors du temps de compilation (analyse statique) et du démarrage du système lorsque le vvmconfig est chargé.

Une erreur au niveau du démarrage se produit lorsque la validation au moment du démarrage échoue.

Nom du package SDV

Comme pour Android standard, le nom du package SDV identifie de manière unique un package déployé sur le système. Un APEX unique doit être fourni pour chaque nom de package. Exemple :

  • com.android.sdv.datatunnel
  • com.android.sdv.sample.datatunnel
  • com.yourcompany.sdv.adas

Les restrictions suivantes s'appliquent :

  • Tous les APEX SDV appartenant à des partenaires doivent être précédés de com.<companyname>.sdv. (com.android.sdv. est réservé aux APEX SDV appartenant à Google).
  • Tous les caractères doivent être alphanumériques ou un trait de soulignement [a-z0-9_].
  • Le nom du package doit contenir au moins quatre segments délimités par un point.
  • Le nom du package ne doit pas se terminer par un point.
  • Le nom du package ne doit pas dépasser 127 caractères.
  • Chaque segment doit commencer par une lettre.
  • Aucun segment ne peut comporter de traits de soulignement consécutifs, __.
  • Aucun segment ne peut se terminer par un trait de soulignement, _.
  • Les segments ne doivent pas être vides (pas de points consécutifs).

Nom du pack de services

Comme pour Android standard, chaque pack de services possède un nom lisible, qui est placé dans l'espace de noms du nom de package auquel il appartient. Exemple :

  • SomeService
  • ImportantService

Les restrictions de dénomination suivantes s'appliquent :

  • Le nom du pack de services DOIT commencer par une lettre majuscule.
  • Le nom du pack de services NE DOIT PAS être vide.
  • Le nom du pack de services NE DOIT PAS dépasser 47 caractères.
  • Le nom du pack de services NE DOIT PAS comporter de traits de soulignement consécutifs, __.
  • Le nom du pack de services NE DOIT PAS commencer ni se terminer par un trait de soulignement, _.
  • Tous les caractères DOIVENT être alphanumériques ou un trait de soulignement, [A-Za-z0-9_].

Nom de l'instance de pack de services

Contrairement aux applications Android standards, les packs de services dans AAOS SDV peuvent être installés et chargés plusieurs fois sur la même VM. Par conséquent, le même pack de services peut avoir plusieurs instances en cours d'exécution dans la même VM AAOS SDV. Ces instances reçoivent un nom d'instance de pack de services lisible. Exemple :

  • front-left
  • front-right
  • main
  • client
  • subscriber

Les restrictions suivantes s'appliquent :

  • Le nom de l'instance doit :

    • commencer par une lettre [a-z] ;
    • ne pas se terminer par un trait d'union ;
    • ne pas dépasser 47 caractères ;
    • être unique sur la même VM pour le même service.
  • Tous les caractères doivent être alphanumériques minuscules ou un trait d'union [a-z0-9\-].

  • Les traits d'union ne doivent pas apparaître consécutivement.

  • Chaque instance de service doit avoir un nom d'instance unique (fourni ou créé au démarrage du service).

Nom complet de l'instance de pack de services (FQIN)

Le nom de la VM SDV, le nom du package, le nom du pack de services et le nom de l'instance de pack de services sont combinés dans un nom complet de l'instance de pack de services (FQIN). Il identifie de manière unique une instance de pack de services à l'échelle du véhicule.

Voici quelques exemples :

  • cdc:com.android.sdv.datatunnel.SomeService/instance1
  • cdc:com.android.sdv.datatunnel.SomeService/instance2
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-left
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/front-right
  • mechatronics:com.yourcompany.sdv.adas.TirePressure/rear-right
  • pcu:com.android.sdv.cluster.InfoProvider/acceleration

Les packs de services de différents packages peuvent avoir le même nom de pack de services. Par exemple, ces deux packs de services (identifiés par leurs FQIN respectifs), déployés dans la même VM SDV (mechatronics), ont le même nom de pack de services TirePressure :

  • mechatronics:com.yourcompany1.sdv.adas.TirePressure/default
  • mechatronics:com.yourcompany2.sdv.adas.TirePressure/default

Dans cet exemple, aucune collision de noms ne se produit, car les deux packs de services se trouvent dans des packages différents (l'un dans com.yourcompany1.sdv.adas et l'autre dans com.yourcompany2.sdv.adas).

Nom du sujet

Les sujets sont identifiés par des chaînes uniques dans le véhicule pour un type de message donné.

Exemples de noms de sujets :

  • left-tire
  • front-window
  • engine-coolant-temp

Restrictions:

  • Doit être alphanumérique ou un trait d'union, [a-z0-9\-].
  • Doit commencer par une lettre.
  • Ne doit pas dépasser 127 caractères.

Nom de la chaîne

Les chaînes sont identifiées par une chaîne de nom.

Exemples de noms de chaînes :

  • main-control
  • high-priority
  • background

Restrictions:

  • Doit être alphanumérique ou un trait d'union, [a-z0-9\-].
  • Doit commencer par une lettre.
  • Ne doit pas dépasser 127 caractères.

Nom de l'unité de service

Les développeurs de packs de services interagissent principalement avec les sujets et les chaînes. Les noms des unités de service sont un détail d'implémentation sous-jacent et sont principalement rencontrés lors de l'utilisation d'outils de débogage tels que dumpsys.

Lorsque les unités de service sont enregistrées auprès de la découverte de services SDV, elles doivent fournir un nom d'unité de service. Ce nom d'unité de service est disponible au moment de la découverte de services. Ces exemples montrent des noms d'unités de service avec des FQIN :

  • ( cdc:com.android.sdv.adas.Service1/default-inst , tp-provider )
  • ( cdc:com.yourcompany.sdv.adas.TirePressure/instance1 , tp-provider-1 )
  • ( mech:com.yourcompany.sdv.adas.TirePressure/instance2 , tp-instance )

Noms des types d'unité

Les noms des types d'unité sont égaux aux noms de types Protobuf (complets). Exemple :

  • com.android.sdv.datatunnel.IComponentHandler
  • com.android.sdv.datatunnel.IComponentHandler
  • com.yourcompany.sdv.adas.TirePressure
  • com.android.sdv.cluster.IWheelInfoCallback
  • com.android.sdv.cluster.ISeatAlignmentCallback

Résumé

Les exigences de dénomination sont résumées dans le tableau suivant :

Élément Limite Caractères autorisés Type de demande
FQIN 256 caractères Composé du nom de la VM, du nom du package, du nom du pack de services et du nom de l'instance de pack de services. Minuscules
Nom de la VM SDV 30 caractères
  • Doit commencer par une lettre a-z.
  • Ne doit pas se terminer par un trait d'union (-).
  • Les caractères doivent être alphanumériques minuscules ou un trait d'union (a-z0-9\-).
  • Les traits d'union ne doivent pas apparaître consécutivement plus d'une fois.
Minuscules
Nom du package SDV 127 caractères
  • Doit contenir au moins quatre segments.
  • Doit commencer par une lettre.
  • Aucun segment ne peut contenir de traits de soulignement consécutifs.
  • Aucun segment ne peut se terminer par un trait de soulignement.
  • Les segments ne peuvent pas être vides.
  • Les caractères doivent être minuscules ou un trait d'union (a-z0-9\-).
Minuscules
Nom du pack de services 30 caractères
  • Doit commencer par une lettre majuscule.
  • Ne doit pas être vide.
  • Ne doit pas contenir de traits de soulignement consécutifs (__).
  • Ne doit pas commencer ni se terminer par un trait de soulignement (_).
  • Les caractères doivent être alphanumériques ou un trait de soulignement (A-Za-z0-9_).
Majuscules et minuscules
Nom de l'instance de pack de services 48 caractères
  • Doit commencer par une lettre (a-z).
  • Ne doit pas se terminer par un trait d'union (-).
  • Doit être unique sur la même VM pour le même service.
  • Les caractères doivent être minuscules ou un trait d'union (a-z0-9\-).
  • Les traits d'union ne doivent pas apparaître consécutivement.
Minuscules
Nom du sujet 127 caractères
  • Doit commencer par une lettre (a-z).
  • Les caractères doivent être alphanumériques minuscules ou un trait d'union (a-z0-9\-).
Minuscules
Nom de la chaîne 127 caractères
  • Doit commencer par une lettre (a-z).
  • Les caractères doivent être alphanumériques minuscules ou un trait d'union (a-z0-9\-).
Minuscules
Nom de l'unité de service 48 caractères
  • Doit commencer par une lettre (a-z).
  • Ne doit pas se terminer par un trait d'union (-).
  • Les caractères doivent être minuscules ou un trait d'union (a-z0-9\-).
  • Les traits d'union ne doivent pas apparaître consécutivement plus d'une fois.
Minuscules