Ordinateur de bord pour voiture de collection 7.1
Frequence de ClVariable

Aide au calcul de FMasque & FNumber dans les ClVariable.

Calcul des temps de boucle des variables d'acquisition
Avec la version 5.1 et l'implémentation des asservissements fonctionnels et rapides, il faut faire des acquisitions plus rapidement, sans saturer le BUS CAN (ni le RPi).
--> principe : toutes les clvariables ne sont pas relevées à chaque tour. par exemple le régime moteur est plus souvent relevé que la température. Un pas est donc TEMPSBOUCLE / NMBREPAS soit (pour 128) 1,28/128 = 10 ms.
See also
clvariables.py , ClVariable
FMasque
FMasque définie la fréquence (ou la période) telle que défini dans la table ci dessous, et FNumber le décallage pour ne pas que toutes les acquisitions d'une même fréquences soient en même temps. La table complète est donnée au lancement de l'application dans le terminal. avec TEMPSBOUCLE = 1.28 et NMBREPAS = 128, on peut ajuster FMasque dans les ClVariable :
FMasque 0 1 3 7 15 31 63 127
periode d'acquisition (ms) 10 20 40 80 160 320 640 1280

dans tous les cas FMasque = 2^x -1 et doit être inferieur à NMBREPAS.
Si FMasque > NMBREPAS alors la variable.read() ne sera jamais appelée.

FNumber
La variable FNumber est introduite pour que toutes les variables de même fréquences ne soient pas lues en même temps mais avec un décalage. Par exemple si 2 variables sont lues tous les 4 pas, avec FNumber = 0 sera lue aux pas 0,4,8,12,16 et une autre avec FNumber = 1 et la voisine 1,5,9,13,17 il faut privilégier les nombres qui ne sont pas des puissances de 2, et si possible des nombres premiers (là on est sur qu'on est pas sur un sous multiple !) un bon choix est de mettre FNumber = FMasque Attention : FNumber doit etre inférieur ou égal à FMasque (sinon provoque un arret du programme)
Note
FNumber doit toujours être inférieur à FMasque
Valeur spéciales
par ailleur il existe les valeurs spéciales suivantes :
  • FMASQUEONETIME = 0xffff : une fois au démarrage
  • FMASQUEJAMAIS = 0xfffe : jamais (variables passives)
Constantes disponibless
Les valeurs FMASQUEMOTEUR, FMASQUEVITESS, FMASQUECONSO sont utilisées par plusieurs modules et déclarées comme constantes. Voir le fichier clvariables.py pour plus d'info.
Les constantes TEMPSBOUCLE et NMBREPAS sont définies dans la class Application() du fichier main.py.