Ajouter des séries dans Yocto-Visualization

Ajouter des séries dans Yocto-Visualization

On nous a plusieurs fois demandé pourquoi Yocto-Visualization n'offre que 4 séries de données par graphe et s'il était possible d'en avoir plus. L'explication est simple: il fallait bien choisir une limite, et un maximum de 4 nous a semblé raisonnable. Malgré tout, il est assez facile de modifier l'application pour avoir plus de séries, cette semaine on vous explique comment faire.



Comment ça? Quatre séries c'est pas assez?
Comment ça? Quatre séries c'est pas assez?


Vous vous dites probablement qu'il suffirait de définir le nombre maximum de séries par graphes comme une constante configurable par l'utilisateur dans l'application et tout le monde serait content. C'est un peu plus compliqué que ça, à cause de la façon dont sont décrites ces séries dans le code source. Vous allez comprendre...

Mise en place

Rajouter des séries dans Yocto-Visualization implique une légère modification du code source. Pour cela vous aurez donc besoin de:

  • VisualStudio, minimum 2015, la version de base est disponible gratuitement chez Microsoft.
  • Le code source de Yocto-Visualization, disponible tout aussi gratuitement sur GitHub.

La modification à faire

Une fois VisualStudio installé et le code source copié sur votre PC, ouvrez le projet YoctoVisualization.csproj avec VisualStudio. Ouvrez le fichier properties.cs en double-cliquant dessus dans la fenêtre solution explorer.

Ouvrez le fichier properties.cs
Ouvrez le fichier properties.cs


Aux alentours de la ligne 2200 du fichier properties.cs, vous allez trouvez la définition de la première série :

ChartSerie _Graph_series0 = new ChartSerie(YColor.fromColor(Color.Tomato));
[ DisplayName("Series 1"),
  CategoryAttribute("Data Sources"),
  PreExpandedCategoryAttribute(true),
  PreExpandedAttribute(true),
  ReadOnlyAttribute(true),
  DescriptionAttribute("First data series, expand for more.")]
public ChartSerie Graph_series0
 {
   get { return _Graph_series0; }
   set { _Graph_series0 = value; }
  }


suivie du code de définition de la deuxième série:

ChartSerie _Graph_series1 = new ChartSerie(YColor.fromColor(Color.DodgerBlue));
[ DisplayName("Series 2"),
  CategoryAttribute("Data Sources"),
  ReadOnlyAttribute(true),
  DescriptionAttribute("Second data series, expand for more.")]
public ChartSerie Graph_series1
  {
    get { return _Graph_series1; }
    set { _Graph_series1 = value; }
  }


et ainsi de suite pour les séries 3 et 4. Pour ajouter une cinquième série il suffit de rajouter sa définition juste derrière celle de _Graph_series3 en respectant la logique de numérotation.

ChartSerie _Graph_series4 = new ChartSerie(YColor.fromColor(Color.Orange));
[ DisplayName("Series 5"),
  CategoryAttribute("Data Sources"),
  ReadOnlyAttribute(true),
  DescriptionAttribute("Fifth data series, expand for more.")]
public ChartSerie Graph_series4
  {
    get { return _Graph_series4; }
    set { _Graph_series4 = value; }
  }


Notez que la couleur, ici Color.Orange, utilisée comme paramètre lors de l'instanciation, sert à définir la couleur par défaut de la série. Une fois la modification faite, compilez le projet (F6) et vous trouverez dans le répertoire bin/debug un exécutable capable de gérer 5 séries. Vous pouvez ajouter autant de séries de vous de le désirez, mais attendez-vous à ce que la vitesse de rendu de l'application soit inversement proportionnelle au nombre de séries affichées.

Ajouter une cinquième série?  trop  facile!
Ajouter une cinquième série? trop facile!


Conclusion

Le nombre de séries maximum gérable par Yocto-Visualization n'est pas dynamique au point d'être configurable directement dans l'interface utilisateur, mais la modification du code source pour en ajouter prend moins de deux minutes. Le fichier properties.cs a été pensé pour rendre ce genre de modifications aussi facile que possible. Par exemple, vous pouvez aussi ajouter des échelles verticales exactement de la même manière: il suffit d'ajouter des Graph_yAxesxx.



Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.